UICollectionView에 대한 사용자 정의 호출을 생성 중입니다. 바닥에있는 셀 중 일부는 화면 가장자리에 매달려 있습니다. 그러나 일반 페이지를 사용하면 다음 페이지로 스크롤하면 페이지 하단의 셀 절반 만 표시되는 경우에만 표시됩니다. 나머지 절반은 다음 페이지에 있습니다. 셀이 끝에서 멈추도록하고 싶지만 화면에 매달려있는 셀이 선명하게 보일 수 있도록 페이징을 중지하십시오.scrollViewWillEndDragging을 재정의 할 때 UICollectionView가 항상 감속을 움직이지는 않습니다.
그래서, 이렇게 나는 기능 오버라이드 - (무효) scrollViewWillEndDragging을 (있는 UIScrollView *)있는 ScrollView withVelocity : (CGPoint) 속도 targetContentOffset : (CGPoint *이 inout를)
내가 두 번째 또는 두 위해 드래그하면을 targetContentOffset , 예상대로 작동하는 것을 볼 수 있지만 페이징을 사용할 때 잘 작동하는 "플릭"을 모방하려고합니다. 내 UICollectionView를 가볍게 치기 만하면 움직이는 대신 targetContentOffset으로 점프합니다.
어떻게 방지합니까? 그것은 주어진 속도를 사용하기 때문에 그것은 targetContentOffset에 직접 '점프'
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
if(targetContentOffset->y < 400) {
targetContentOffset->y = 0;
return;
}
int baseCheck = 400;
while(baseCheck <= 10000) {
if(targetContentOffset->y > baseCheck && targetContentOffset->y < baseCheck + 800) {
targetContentOffset->y = (baseCheck + 340);
return;
}
baseCheck += 800;
}
targetContentOffset->y = 0;
}