如何处理滚动视图
- 您
navigation bar
始终位于顶部,高度44px
和顶部空间为20px
(顶部20px
用于状态栏,即您在设备中看到的充电、网络等图标)。
修复顶部的原因navigation bar
是,无论用户在 VC 中,您始终必须向他展示当时他在哪个 VC 中,否则您的应用程序质量可能会降低(我说可能是)。毕竟,您可以添加您navigation Bar
的UIScrollView
选择。
您看到的顶部绿色视图,我只是将视图作为statusBar
高度20px
来显示差异。
现在添加UIScrollView
其余部分ViewController
并给出以下约束:
- 顶部到导航栏
0px
- 前导、尾随、底部到超级视图为
0
.
现在你的 VC 如下所示。红点表示可以约束缺失。不要担心,直到您的组件内部UIScrollView
设置不正确,它会显示相同的错误。
现在UIView
在你的UIScrollView
(说viewMain)中添加一个并给出这样的约束
- 顶部、底部、前导、尾随
scrollview
为0
- 等宽给你
viewVC
。viewVC
是VC的观点。当你采取 new 时,你会得到这个视图UIViewController
。现在你的用户界面会像
你的视图层次结构就像
在这里,我假设您只是在垂直方向而不是水平方向滚动视图。
现在我要添加 5 个不同高度的视图来scrollview
检查它。
viewMain
在(说viewYellow)中添加一个视图并在下面给出约束;
- 顶部,导致尾随
mainView
为0px
- 高度
180px
现在你的用户界面会像
现在与step 4
添加四个视图(viewGreen、viewBlue、viewRed、viewPurple)相同,并给出如下约束
viewGreen :
1. top 到viewYellow
0px
2.leading 到mainView
as0px
和 3. height 150px
。
viewBlue :
1. top 到viewGreen
0px
2.leading 到mainView
as0px
和 3. height 80px
。
viewBlue :
1. top 到viewGreen
0px
2.leading 到mainView
as0px
和 3. height 80px
。
viewRed :
1. top 到viewBlue
0px
2.leading 到mainView
as0px
和 3. height 140px
。
viewPurple :
1. top 到viewRed
0px
2.leading 到mainView
as0px
和 3. height 128px
。4.底部到mainView
0px
。
现在您的 UI 和视图层次结构将如下所示
不要担心,viewPurple
因为它很少出现UI
在层次结构中但可用。它是scrollView
并且非常安全。看
注意:没有可用的约束错误和警告,UIViewController
因为正如我已经说过的那样,当您scrollView
正确设置内部组件时,约束错误将得到解决。
重要: 如何计算 ScrollView 高度
当您使用顶部、底部和高度约束设置每个视图的约束时,mainView
因此mainView
高度计算如下等式
mainView.height = viewYellow.top + viewYellow.height + .... for all view + viewPurple.bottom
和scrollView
高度将计算如下:
scrollView.height = mainView.height
然而,每个视图都有恒定的高度,因此旋转高度将相同。
最终输出
肖像
景观