Sponsored Link
どうも、3urpriseのヤマサキです。
今日はStoryBoardのUIScrollView(オートレイアウト)がちょっとわかんないんで、もうコードで書いてやりました。
Now To-Doのチュートリアル画面のコードをそのまんま公開するって楽をしてみます。
デハ、ご覧あれ!
class TutorialViewController: UIViewController,UIScrollViewDelegate {
var _pageControl: UIPageControl!
var _scrollView: UIScrollView!
var _displaySize:CGRect = UIScreen.mainScreen().bounds
// デバイスのサイズ取得
var _devPageValu:Float = Float()
var _devViewValue:Float = Float()
var _devViewValue2:Float = Float()
@IBOutlet weak var _barButton: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
// デバイス毎のサイズを変数で取得する為のfunc
self.disp()
// ビューの縦、横のサイズを取得する.
let width = self.view.frame.maxX, height = self.view.frame.maxY
// ScrollViewを取得する.
_scrollView = UIScrollView(frame: self.view.frame)
// ページ数を定義する.
let pageSize = 4
// 縦方向と、横方向のスクロール状態のバーの表示・非表示
_scrollView.showsHorizontalScrollIndicator = false
_scrollView.showsVerticalScrollIndicator = false
// ページングを許可する.
_scrollView.pagingEnabled = true
// ScrollViewのデリゲートを設定する.
_scrollView.delegate = self
// スクロールの画面サイズを指定する.
_scrollView.contentSize = CGSizeMake(CGFloat(pageSize) * width, 0)
// ScrollViewをViewに追加する.
self.view.addSubview(_scrollView)
// ページ数分ボタンを生成する.
for var i = 0; i < pageSize; i++ {
var imageArray = ["nowtodo_tutorial001.png","nowtodo_tutorial002.png","nowtodo_tutorial003.png","nowtodo_tutorial004.png"]
var image:UIImage? = UIImage(named:imageArray[i])!
var imageView:UIImageView = UIImageView(image:image)
imageView.frame = CGRectMake(CGFloat(i) * width + width/10 - CGFloat(_devViewValue), height/100 - CGFloat(_devViewValue2), width, height)
imageView.contentMode = UIViewContentMode.ScaleAspectFit
_scrollView.addSubview(imageView)
}
// PageControlを作成する.
_pageControl = UIPageControl(frame: CGRectMake(0, self.view.frame.maxY - CGFloat(_devPageValu), width, 50))
// PageControlするページ数を設定する.
_pageControl.numberOfPages = pageSize
// 現在ページを設定する.
_pageControl.currentPage = 0
_pageControl.userInteractionEnabled = false
// pageControlカラー
// 全体の点の色
_pageControl.pageIndicatorTintColor = UIColor.hexStr("E03F4E", alpha: 1.0)
// 現在の点の色
_pageControl.currentPageIndicatorTintColor = UIColor.whiteColor()
self.view.addSubview(_pageControl)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
// スクロールした時
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
// スクロール数が1ページ分になったら時.
if fmod(scrollView.contentOffset.x, scrollView.frame.maxX) == 0 {
// ページの場所を切り替える.
_pageControl.currentPage = Int(scrollView.contentOffset.x / scrollView.frame.maxX)
}
}
//
func disp() {
// デバイスの高さ取得
var _devicesHeight = _displaySize.height
if _devicesHeight == 568.0 {
// iPhone5,5sの設定
_devViewValue = 32.0
_devViewValue2 = 40.0
_devPageValu = 50.0
} else if _devicesHeight == 667 {
// iPhone6の設定
_devViewValue = 38.0
_devViewValue2 = 40.0
_devPageValu = 50.0
} else {
// iPhone6 Plus
_devViewValue = 42.0
_devViewValue2 = 44.0
_devPageValu = 60.0
}
}
}
Sponsored Link
ツイート
SwiftにてUIScrollViewとUIPageCotorollをコードでベタ書き!全コピで使えるよ!の巻