忘れそうなのでメモ
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 を固定すればいいですね