iOS UIScrollView 自动偏移问题

2021-01-22  本文已影响0人  songjk

当我们调用presentViewController 从竖屏跳转到横屏的时候,原来竖屏里面的UIScrollView会自动发生偏移

问题现象为:

1. 触发方法:
    UIScrollView _notifyDidScroll
2.触发发生偏移UIScrollView的代理方法:
    -(void)scrollViewDidScroll:(UIScrollView *)scrollView
3.再次触发1和2的方法

原因:

1.设置UIScrollView的约束的时候,没有指定它的(滑动方向上的)宽度,而是通过左右约束来动态生成宽度
2.当屏幕旋转的时候,UIScrollView的宽度会因为约束发生变化
3. UIScrollView的宽度发生变化后,其contentOffset也会发生变化,所以回到竖屏控制器后就回发生偏移

解决办法

设置UIScrollView可以滑动的方向上的约束要设置为固定值,
比如水平滑动要设置宽度为屏幕宽度,这样滑动方向上的宽度或者高度不会发生变化,
所以contentOffset也不会发生变化,所以就不会在跳转横屏时发生偏移
上一篇 下一篇

猜你喜欢

热点阅读