iOS UIScrollView 滑动联动问题

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时,各种不同机型上都设置为固定值,可以完全避免此类问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,798评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,331评论 0 11
  • https://github.com/canezk/MIT-6.824/tree/master/src/pbser...
    canezk阅读 894评论 0 0
  • 1.想多了,做呢? 很长的时间,小灶的朋友们看不到我的身影,一定纳闷,这个嘻哈跑哪里去了? 我说,累了,想冬眠。 ...
    嘻哈成长记阅读 813评论 0 0
  • 近段时间,《我是范雨素》这篇文章爆红,就像当年《穿越大半个中国去睡你》一样,人尽皆知。 这篇文章在我们写文圈里,争...
    华玉珺阅读 218评论 1 8