Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 添加视图后如何调整uiscrollview(自动布局)_Ios_User Interface_Uiscrollview_Autolayout_Nslayoutconstraint - Fatal编程技术网

Ios 添加视图后如何调整uiscrollview(自动布局)

Ios 添加视图后如何调整uiscrollview(自动布局),ios,user-interface,uiscrollview,autolayout,nslayoutconstraint,Ios,User Interface,Uiscrollview,Autolayout,Nslayoutconstraint,主视图中有一个uicrollview。我在scrollview中有容器UIView,其边缘固定在scrollview上。此容器视图具有恒定的宽度和高度约束。因为没有它们,“滚动视图”无法工作 当我在容器视图中垂直添加许多子视图时,子视图超出了容器视图的底部边界。它不可滚动,因为容器具有相同的预定义高度。 如何使容器视图可调整,使其与子视图高度匹配,从而使其可滚动 也考虑使用 AutoLayOut < P>你需要做的是更新高度约束,对吗? 我会将内部视图的高度约束链接为ViewController

主视图中有一个
uicrollview
。我在scrollview中有容器
UIView
,其边缘固定在scrollview上。此容器视图具有恒定的
宽度
高度
约束。因为没有它们,“滚动视图”无法工作

当我在容器视图中垂直添加许多子视图时,子视图超出了容器视图的底部边界。它不可滚动,因为容器具有相同的预定义高度。 如何使容器视图可调整,使其与子视图高度匹配,从而使其可滚动


也考虑使用<代码> AutoLayOut<<代码> .< /P> < P>你需要做的是更新高度约束,对吗? 我会将内部视图的高度约束链接为ViewController中的IBOutlet:

@property (nonatomic, weak)     IBOutlet    NSLayoutConstraint *contentViewHeight;
  • 通常拖放到文件的所有者
然后,在添加子视图时,需要通过调用该方法来更新约束的常量:

- (void)updateContentViewHeight:(CGFloat)height
{
    self.contentViewHeight.constant = height;
    [self.yourContentView layoutIfNeeded]; 
}
如果您可以跟踪整个子视图堆栈的高度,那就太好了!您只需要将其传递给该方法

如果不是,可能会有点棘手。。。您可能需要删除高度约束,将子视图一个一个地添加到另一个子视图下(只要它们的高度固定),同时不要忘记将最后一个子视图的下边框“固定”到“内部视图”的下边框上。 换句话说,内部视图的高度不是固定的,而是通过其“高度固定”内容的总和进行扩展。 在以下情况下,请这样做:

[self.yourContentView layoutIfNeeded]; 
在“.frame”中应该有它的最终高度

然后,您应该能够更新高度约束或设置scrollview的内容大小,这是最适合您的