SwiftにてUIScrollViewとUIPageCotorollをコードでベタ書き!全コピで使えるよ!の巻

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をコードでベタ書き!全コピで使えるよ!の巻

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です