41

사용자 지정 UICollectionViewFlowLayout이있는 UICollectionView가 있습니다. 가로로 스크롤하고 한 번에 하나의 항목 만 표시합니다 (전체 높이). pagingEnabled = YES를 사용하여 페이지에 고정됩니다.데이터 소스에 항목이 하나만있는 경우 UICollectionView가 튀지 않습니다.

UICollectionView는 특정 날짜의 사진을 보여줍니다. 처음에는 하루를 +/- 1 일로 변경하는 버튼이 있었지만 사용자가 처음 또는 마지막 이미지를 지나서 (미리 지정된 임계 값을 지나서) 콜렉션 뷰를 당겨서 하루를 바꿀 수 있다면 그것은 깔끔할 것이라고 생각했습니다. UIScrollView 대리자 메서드를 사용하여이 구현 된 및 위대한 ...... 컬렉션보기에서 두 개 이상의 항목이있는 경우 작동합니다.

설명하기가 어렵지만 항목이 하나만있는 경우 항목의 경계를 벗어난 항목을 가져올 수 없습니다. I.E. 거기에 바운스가 없습니다.

이 동작이 필요하지만이 문제를 먼저 해결해야합니다. 나는 pagingEnabled = YES를 제거하고 targetContentOffsetForProposedContentOffset : proposedContentOffset : withScrollingVelocity를 사용하면 작업을 수행 할 수 있지만 실제로 페이징이 가능하다는 것을 알게된다고 생각합니다. (이들은 상호 배타적입니다.)

이것에 대한 아이디어가 있습니까?

답변

98

UICollectionViewalwaysBounceHorizontalalwaysBounceVertical의 속성을가집니다. 가로를 YES로 설정하면 did 트릭이 나옵니다.

+13

Interface Builder에서 이것을 활성화하려면 "수직으로 바운스 (Bounce Vertically)"옵션을 사용하십시오. –

+0

'alwaysBounceHorizontal'과'alwaysBounceVertical'은 뷰'UIScrollView'에서 기인합니다. – tounaobun

+0

그래서 나는'UITableView'가이 속성을 'YES'로 설정했다고 말할 수 있습니까? –

2

@VaporwareWolf에 감사드립니다. 대답은 정확합니다.

이 (스토리 보드 또는 코드를 통해) 동시에 YESbounces 속성을 설정하는 것을 잊지 마십시오 : 그 보충을 추가 할 수 있습니다.