美文网首页
UIScrollView、UICollectionView、UI

UIScrollView、UICollectionView、UI

作者: 苍眸之宝宝 | 来源:发表于2020-09-27 16:16 被阅读0次

简介:

UIScrollView、UICollectionView、UITableView在设备屏幕切换横竖屏时,布局的变化会导致其自动滚动,导致其位置不是原先的位置了。

出现场景:

场景1:以UIScrollView及其子类view,contentSize达到一定的长度,滚动到某个位置时,进行设备横竖屏切换,再次回归设备切换前的方向时,滚动位置发生了变动;
场景2:当前控制器为UIScrollView及其子类view,contentSize达到一定的长度,滚动到某个位置时,进行设备横竖屏切换,或者进行跳转下一控制器(且下一控制器为改控制器的屏幕方向不同;例如:当前屏幕方向和竖屏,下一控制器方向为横屏)。

出现原因:

原因1:设备在横竖屏切换时,会导致屏幕宽(width)和高(height)互换,这样会导致以UIScrollView及其子类view的contentSize变化,引起滚动位置的变化;
原因2:以UIScrollView及其子类view,进行了自动化布局,而不是定宽定高布局。

解决方法:

方法1:采用frame布局;
方法2:自动布局;但是对view的宽高,进行定值设置。

相关代码:

1.问题代码:

        tableView.snp.makeConstraints { (make) in
            make.top.equalTo(navBar.snp.bottom)
            make.left.right.equalToSuperview()
            make.bottom.equalTo(-(kTabBarHeight + kBottomSafeMargin))
        }

2.解决代码:

        tableView.snp.makeConstraints { (make) in
            make.left.equalTo(0)
            make.top.equalTo(navBar.snp.bottom)
            make.width.equalTo(kScreenWidth)
            make.height.equalTo(kScreenHeight - (kTabBarHeight + kBottomSafeMargin) - kNavigationHeight)
        }

相关文章

网友评论

      本文标题:UIScrollView、UICollectionView、UI

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