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也不会发生变化,所以就不会在跳转横屏时发生偏移