美文网首页
iOS UIScrollView 滑动联动问题

iOS UIScrollView 滑动联动问题

作者: 剁椒鱼尾 | 来源:发表于2017-03-02 09:56 被阅读0次

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

相关文章

网友评论

      本文标题:iOS UIScrollView 滑动联动问题

      本文链接:https://www.haomeiwen.com/subject/scuewttx.html