横にだけスクロールするUIScrollView

忘れそうなのでメモ

import Foundation

class TLHorizontalScrollView : UIScrollView{
    
    // タップ開始時のスクロール位置格納用
    var startPoint : CGPoint!;
    
    override init(frame: CGRect) {
        super.init(frame: frame);
        Initialize();
    }
    
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder);
        Initialize();
    }
    
    // initialize method
    func Initialize(){
        self.delegate = self;
        
        // 横固定なので縦のIndicatorいらない
        self.showsVerticalScrollIndicator = false;
    }
}

extension TLHorizontalScrollView : UIScrollViewDelegate{
    
    // ドラッグ開始時のスクロール位置記憶
    func scrollViewWillBeginDragging(scrollView: UIScrollView) {
        self.startPoint = scrollView.contentOffset;
    }

    // ドラッグ(スクロール)しても y 座標は開始時から動かないようにする(固定)
    func scrollViewDidScroll(scrollView: UIScrollView) {
        scrollView.contentOffset.y = self.startPoint.y;
    }
}

縦方向だけにスクロールしたいときは、x を固定すればいいですね

Atsumi3

したいことをします。

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください