2017-12-14 15 views
0

UIScrollViewでページングを許可するが、ページングを一方向に制限する方法はありますか?スクロールビューの一方向ページング

例:ユーザーがバックグラウンド(左側)にページングできるようにしますが、前方には移動しないようにします。いくつかのタイプのオンボーディングのユースケースがあります。私は、前進し、有効にしたり無効にしたり、スワイプを取り除いたりするボタンを追加することはできますが、むしろそうすることはできません。

答えて

0

私はよく何をしたいが、何UICollectionView使用について理解している場合、私は知らない。

lazy var onBoardingCollectionView: UICollectionView = { 
    let layout = UICollectionViewFlowLayout() 
    layout.scrollDirection = .horizontal 
    layout.minimumLineSpacing = 0 
    layout.minimumInteritemSpacing = 0 
    let cv = UICollectionView(frame: self.view.frame, collectionViewLayout: layout) 
    cv.showsHorizontalScrollIndicator = false 
    cv.showsVerticalScrollIndicator = false 
    cv.isPagingEnabled = true 
    return cv 
}() 

をあなたは、画面の大きさだけでなくによってUICollectionViewDelegateFlowLayoutにおける方法であなたにカスタムセルを追加します。

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 
    return CGSize(width: SCREENW, height: SCREENH) 
} 

あなたはこの方法でデータソースとコレクションの前のものを表示し、削除する現在のセルを取得しようとすることができ、特定の方向に行くにしたくない場合。

func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) { 
    let currentPage = Int(scrollView.contentOffset.x/scrollView.frame.width) 
    print("current cell: ", currentPage)  
} 
関連する問題