2017-12-14 8 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) 
} 

당신이 표시하고이 방법 DataSource에 수집 및 이전을 제거하는 현재 셀을 얻을 시도 할 수 있습니다 특정 방향으로 가고 싶어하지 않는 경우

.

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