iOS滑动视图通过偏移量判断显示第几个item

滑动视图和UICollectionView一起使用时,容易出现item显示的位置在模拟器上偏移的情况。在出现这个问题时,使用的解决方法是,关闭分页效果,利用UISrollView的代理方法,根据偏移量判断应该显示第几个item,从而计算出要显示的页码。
核心代码如下:
- (void) scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {

    //1.根据偏移量判断一下应该显示第几个item
    CGFloat offSetX = targetContentOffset->x;

    CGFloat itemWidth = 80;

    //item的宽度+行间距 = 页码的宽度
    NSInteger pageWidth = itemWidth + 10;

    //根据偏移量计算是第几页
    NSInteger pageNum = (offSetX+pageWidth/2)/pageWidth;

    //2.根据显示的第几个item,从而改变偏移量
    targetContentOffset->x = pageNum*pageWidth;

    self.currentIndex = pageNum;

}

你可能感兴趣的:(iOS滑动视图通过偏移量判断显示第几个item)