简单自定义轮播器不动问题

2017-11-07  本文已影响0人  名为信念的旗帜

无意间遇到的问题,轮播器轮播到第二个个cell就不动了

    // 获取偏移量
    CGFloat offsetY = self.collectionView.contentOffset.y;
    // 获取高度
    CGFloat height = self.collectionView.bounds.size.height;
    // 计算当前页数
    NSInteger page = offsetY / height;
    // 修改偏移量
    [self.collectionView setContentOffset:CGPointMake(0, (page + 1) * height) animated:YES];

以上是源码
检查了一下发现原因是,因为offsetY和height是浮点型,浮点型不是精准类型,
所以有可能offsetY到第二个cell的时候大小比height小,导致了offsetY/height一直为0卡在第二个cell不动的问题
简单的解决方法就是把他们类型转换一下就ok拉

NSInteger page = (NSInteger)offsetY / (NSInteger)height;
上一篇 下一篇

猜你喜欢

热点阅读