scroll的frame如下:
UIScrollView *formScr = [[UIScrollView alloc]initWithFrame:CGRectMake(80*PROPORTION, _whiteBg.bottom+90, 70*PROPORTION*3, 40*3)];
PROPORTION = 当前屏幕的宽度/375(6,6s的宽度)
滚动结束时,根据偏移量来计算页数
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGPoint offset = scrollView.contentOffset;
curIndex = offset.x/scrollView.width;
NSLog(@"%f===%d",offset.x,curIndex);//打印x偏移量
[self reloadform:YES];//刷新表格方法
}
结果:6,6s正常联动,5上时正常
时不正常,正常时偏移量为180,不正常时是179点几。
原因,PROPORTION系数除不尽。
在5,5s上,320/375 结果是无限循环小数,每次计算会有误差。
6p,6sp上,414/375= 1.104,3位小数,预计不会有这个问题
解决方法:
#pragma mark - UIScrollViewDelegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGPoint offset = scrollView.contentOffset;
curIndex = (offset.x+1)/scrollView.width;//偏移量加1
NSLog(@"%f===%d",offset.x,curIndex);
[self reloadform:YES];//刷新表格方法
}
把x的偏移量加1,再去计算页数,联动就正常了
当然,最好的是在以后设置scroll的size时,各种不同机型上都设置为固定值,可以完全避免此类问题