本文代码主要用于实现横向滚动视图,每个item不满一屏的情况下的分页效果
- (CGPoint)nearestTargetOffsetForOffset:(CGPoint)offset
{
CGFloat pageSize = 300.f;
CGFloat targetX;
CGFloat currentCenterX = pageSize *_curPage;
//带速度的时候(也就是轻扫)才让他滑到下一页
if(offset.x - currentCenterX >=10 && velocity.x>0){
_curPage ++;//_curPage是记录没有滑动之前的页数
}elseif(offset.x - currentCenterX < -10 && velocity.x <0){
_curPage --;
}elseif(offset.x - currentCenterX >= pageSize/2.f && velocity.x ==0){
_curPage ++;
}elseif(offset.x - currentCenterX < -pageSize/2.f && velocity.x ==0){
_curPage --;
}
targetX = pageSize * _curPage;
returnCGPointMake(targetX, offset.y);
}
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inoutCGPoint *)targetContentOffset
{
//velocity : 当手指轻扫 的时候会有一个初速度,正常拖动的时候初速度都是0
CGPoint targetOffset = [selfnearestTargetOffsetForOffset:*targetContentOffset];
targetContentOffset->x = targetOffset.x;
targetContentOffset->y = targetOffset.y;
}