动态检测UIScrollView的高度
我有一个检测UIScrollView高度的真正问题。 我搜索了很多,发现了这个解决方案:
所以我从Content View
拖到View
并制作了相同的Equal Height
。 但我不适合我。
我还尝试根据元素高度计算scrollView高度,但我不认为这是正确的方法。
如何动态设置UIScrollView高度? 这样做的正确方法是什么?
你的ScrollView
应该像这样添加一个ContentView :
选择你的scrollView
并在大小Inspector底部,设置宽度如下:
有关如何在Interface Builder中处理scrollView
更多详细信息,您可以查看此AppleDoc 使用滚动视图
希望这对你有所帮助!
您只能通过计算添加到scrollview的各个对象的高度来设置scrollView
的高度。
以编程方式,计算每个UI对象的高度,并在结束时将内容高度设置为scrollview。
[scView setContentSize:CGSizeMake(300, height)];
在上面的行中,“height”只是计算出的所有UI对象的所有高度的总和。
通过执行以下操作,我能够根据内部的内容实现具有自动高度的UIScrollView。
- 将scrollview添加到主视图。
- 在此容器滚动视图中添加一个ContentView。
- 在此内容视图中为容器滚动视图及其内部UI组件提供适当的约束。 请注意,您不应该为内容视图指定固定高度。 内容视图的约束应该根据内部的UI组件增长
- 这可能会给你一个布局警告’Unambigous ….’。 要解决此问题,请在内容视图和滚动视图之间提供“等高度”约束关系
尝试以上步骤,这将解决您的问题:)
您想通过自动布局在UIScrollView中添加项目(UIView,UILabel …)吗? 如果是这样,只需将它们放入其中并为它们创建正确的约束。
关键点是UIScrollView中的每个项目都有超级视图的顶部,前导,底部和尾部约束。 最重要的是确保您的UIScrollView在其子项目中具有顶部,前导,底部和尾随的后代约束。 它将为您计算滚动视图的正确内容高度。
在您的解决方案中,如果您的contentView具有零帧,则它不会为滚动视图提供任何高度。