使用自动布局调整 UIView 大小并更新内容

Posted

技术标签:

【中文标题】使用自动布局调整 UIView 大小并更新内容【英文标题】:Resize UIView and update content with Autolayout 【发布时间】:2014-07-20 14:48:05 【问题描述】:

这是我正在使用的当前设置。在我的故事板中,我有一个ViewController 和一个UIScrollVIew,它的位置和大小都使用Autolayout

scrollView 的内容是基于内置界面构建器的UIView 以编程方式添加的。它有几个标签,它们都使用自动布局:前导和尾随到超级视图,以及垂直空间。

滚动视图会根据屏幕大小(iPhone / iPad)调整大小,但内容视图的宽度始终是界面生成器中指定的宽度。我尝试设置 contentview 的框架宽度以匹配滚动视图框架宽度,这会改变它的框架,但标签宽度保持完全相同。此外,当我开始滚动时,它会恢复我的帧更改。有什么想法可以让内容的宽度与scrollview's 匹配并相应地更新它的内容吗?

我还以编程方式将 contentView 中的常量添加到 scrollView

[scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[scrollContent]|" options:0 metrics: 0 views:viewsDictionary]];
[scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[scrollContent]|" options:0 metrics: 0 views:viewsDictionary]];

【问题讨论】:

【参考方案1】:

设置框架的宽度不起作用,但显然进行宽度限制就可以了。不知道为什么,但也许它也可以帮助其他人。

【讨论】:

当自动布局开启时,改变框架被忽略。

以上是关于使用自动布局调整 UIView 大小并更新内容的主要内容,如果未能解决你的问题,请参考以下文章

使用带有修复底部 UIView 的自动布局调整 UIView 的大小

UIView 使用约束自动布局居中和调整大小

UIView 使用自动布局调整大小,但在运行时获取其帧大小不正确 ios

使用自动布局调整同级视图的大小时,使用子视图重新定位 UIView 不起作用

UIView 调整内容大小

使用自动布局动态更改子视图后调整超级视图的大小