無(wú)意間遇到的問(wèn)題,輪播器輪播到第二個(gè)個(gè)cell就不動(dòng)了
// 獲取偏移量
CGFloat offsetY = self.collectionView.contentOffset.y;
// 獲取高度
CGFloat height = self.collectionView.bounds.size.height;
// 計(jì)算當(dāng)前頁(yè)數(shù)
NSInteger page = offsetY / height;
// 修改偏移量
[self.collectionView setContentOffset:CGPointMake(0, (page + 1) * height) animated:YES];
以上是源碼
檢查了一下發(fā)現(xiàn)原因是,因?yàn)閛ffsetY和height是浮點(diǎn)型,浮點(diǎn)型不是精準(zhǔn)類型,
所以有可能offsetY到第二個(gè)cell的時(shí)候大小比height小,導(dǎo)致了offsetY/height一直為0卡在第二個(gè)cell不動(dòng)的問(wèn)題
簡(jiǎn)單的解決方法就是把他們類型轉(zhuǎn)換一下就ok拉
NSInteger page = (NSInteger)offsetY / (NSInteger)height;