iOS開発ノート(Swift)-汎用Appインストールガイドページの実装

5963 ワード

これまでやってきたプロジェクトはOCベースで開発されていたが、最近はSwift言語でプロジェクト全体を書き換える試みが始まった.
この記事では、一般的な汎用Appインストールガイドインタフェースを実現するためにSwiftを使用する方法について説明します.
 
効果のプレビュー:
 
 
実現構想:
 
主にUIScrollViewをコンテナとして採用し、ContentSizeの幅を(ブートページ数)*画面幅に設定し、pagingEnabledをtrueに設定してスクロールバーを非表示にします.指示としてのUIPageControlとUIscrollViewはselfに直接追加する.ビューの上に、UiPageControlを一番上に保存します.
 
実装コード:
 
import UIKit





class YSYGuideViewController: UIViewController,UIScrollViewDelegate {

    var scrollView:UIScrollView!

    var pageControl:UIPageControl!

    var startBtn:UIButton!

    



    override func viewDidLoad() {

        super.viewDidLoad()



        // Do any additional setup after loading the view.

        loadCustomLayout()

        

    }



    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }

    

    //scrollview  

    func scrollViewDidScroll(scrollView: UIScrollView) {

        var offset=scrollView.contentOffset

        pageControl.currentPage=Int(offset.x/Yunshouyi.SCREEN_WIDTH)

        if(pageControl.currentPage==2){

            startBtn.hidden=false

        }else{

            startBtn.hidden=true

        }

    }

    

    //       

    func loadCustomLayout(){

        scrollView=UIScrollView(frame: CGRectMake(0, 0, Yunshouyi.SCREEN_WIDTH, Yunshouyi.SCREEN_HEIGHT))

        scrollView.pagingEnabled=true

        scrollView.showsHorizontalScrollIndicator=false

        scrollView.showsVerticalScrollIndicator=false

        scrollView.contentSize=CGSizeMake(3*Yunshouyi.SCREEN_WIDTH, Yunshouyi.SCREEN_HEIGHT)

        for i in 1...4{

            var image=UIImage(named: "Guideline-\(i)")

            var imageView=UIImageView(image: image)

            imageView.frame=CGRectMake(CGFloat((i-1))*Yunshouyi.SCREEN_WIDTH, 0, Yunshouyi.SCREEN_WIDTH, Yunshouyi.SCREEN_HEIGHT)

            imageView.contentMode = UIViewContentMode.ScaleToFill

            scrollView.addSubview(imageView)

            

        }

        pageControl=UIPageControl(frame: CGRectMake(Yunshouyi.SCREEN_WIDTH/2-100, Yunshouyi.SCREEN_HEIGHT-100, 200, 100))

        startBtn=UIButton(frame: CGRectMake(Yunshouyi.SCREEN_WIDTH/2-60, Yunshouyi.SCREEN_HEIGHT/2+50, 120, 35))

        

        pageControl.numberOfPages=3;

        pageControl.currentPage=0

        

        startBtn.setTitle("    ", forState: UIControlState.Normal)

        startBtn.setBackgroundImage(UIImage(named: "StartButton"), forState: UIControlState.Normal)

        startBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)

        startBtn.addTarget(self, action: "guideOver", forControlEvents: UIControlEvents.TouchUpInside)

        startBtn.hidden=true

        

        

        scrollView.bounces=false

        scrollView.delegate=self

        self.view.addSubview(scrollView)

        self.view.addSubview(pageControl)

        self.view.addSubview(startBtn)

        

    }

    

    //    app

    func guideOver(){

        var mainVC=UINavigationController(rootViewController: UITableViewController())

        self.presentViewController(mainVC, animated: true, completion: nil)

        

    }



    

    override func prefersStatusBarHidden() -> Bool {

     return true

    }

    



}