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