主UIScrollView
中有一个UIView
。我在scrollview中有容器UIView
,它的边被固定到scrollview。并且此容器视图具有常量width
和height
约束。因为滚动视图在没有它们的情况下不起作用。
当我在容器视图中垂直添加大量子视图时,子视图超出了容器视图的底部边框。它不可滚动导致容器具有相同的预定义高度。 如何使容器视图可调,以便它可以匹配子视图高度,使其可以滚动。
还要考虑我使用的是autolayout
。
答案 0 :(得分:1)
您实际需要做的是更新高度约束,对吗?
我会将内部视图的高度约束作为IBOutlet链接到ViewController中:
@property (nonatomic, weak) IBOutlet NSLayoutConstraint *contentViewHeight;
然后,当您在子视图中添加子视图时,您需要通过调用该方法来更新Constraint的常量:
- (void)updateContentViewHeight:(CGFloat)height
{
self.contentViewHeight.constant = height;
[self.yourContentView layoutIfNeeded];
}
如果你可以跟踪整个子视图的高度,那太好了!你只需要将它传递给那个方法。
如果没有,可能会有点棘手......您可能需要删除高度约束,将您的子视图一个下方添加(只要它们的高度是固定的),而不要忘记“固定”底部边框最后一个Subview到“内部视图”的底部边框。 换句话说,内部视图的高度不是固定的,而是通过其“高度固定”内容的总和来扩展。 这样之后:
[self.yourContentView layoutIfNeeded];
它的“。frame”
应该是它的最终高度然后,您应该能够更新高度约束或设置滚动视图的内容大小,哪种方式最适合您。