【发布时间】:2016-07-14 13:50:58
【问题描述】:
在堆栈溢出方面进行了很多搜索,但没有找到任何适合我们的解决方案。
我们有几个视图和UILabels 和UIButtons UIScrollView 格式如下。单击按钮时,我们隐藏了几个视图和标签并尝试重新计算UIScollView 高度。
UIScrollView
-->UIView
-->UIView2
-->UIView3
-->UILabel1
-->UILabel2 (请注意这些标签不在UIView 内,它们直接添加到scrollview。这是正确的方法还是应该将它们添加到UIView 内? )
-->UITextField(直接添加到scrollview)
-->UITextField1(直接添加到scrollview)
-->UIButton(点击textfields上方的按钮,标签根据业务逻辑隐藏或显示)
当我们尝试在UIButton 上重置UIScrollview 的大小时,单击它不会正确计算高度。在堆栈溢出中尝试了以下由许多答案共享的解决方案
- 标签和按钮直接添加到
UIScrollView有问题吗? - 有没有更好的方法来正确设置
UIScrollview的高度? -
我们不想使用
AutoConstraintCGRect contentRect = CGRectZero;for (UIView *view in uiScrollViewObj.subviews) { contentRect = CGRectUnion(contentRect, view.frame); } uiScrollViewObj.contentSize = contentRect.size;
【问题讨论】:
-
你是想改变内部内容的高度,还是滚动视图本身的高度?
-
改变uiScrollView的高度
-
uiScrollViewObj.contentSize 改变了可以滚动的内部区域的大小,并且不改变scrollview的高度,你必须改变scrollview的frame。
-
让我试试。有没有可以分享的例子
-
这是我在获取内容大小后尝试的方法.. 没有奏效。现在我什至无法滚动 uiScollviewObj.frame = CGRectMake(10, 20, viewWidth, contentRect.size.height);
标签: ios objective-c uiview uiscrollview uilabel