UIView 调整内容大小

Posted

技术标签:

【中文标题】UIView 调整内容大小【英文标题】:UIView Resize for content 【发布时间】:2016-10-11 17:33:54 【问题描述】:

找不到任何答案,或者我错过了什么......

ios 中,故事板上具有自动布局。如果我有一个带有一些控件的 UIView,则根据用户单击的内容,子视图正在调整大小。我可以以某种方式将超级视图调整为内容吗?

在我的应用程序中,我有一个视图,但如果单击按钮,子视图被隐藏,我希望超级视图的高度降低以排除隐藏视图。我可以连接高度约束并以编程方式处理它,但自动处理它会很好......

有办法吗?

【问题讨论】:

【参考方案1】:

我可以假设您有一些约束将您的超级视图的大小与您的子视图的大小相关联吗?

如果是这样,当你隐藏子视图时,你需要做的就是调整你的超级视图的大小,将你的子视图的高度约束更改为 0(自动布局不会关心你的子视图是否隐藏,它只需要考虑约束)。

【讨论】:

【参考方案2】:

你可以试试这样的:

您可以尝试将此代码放入您的buttonAction

yourView.frame = CGRect(x: anotherView.bounds.minX, y: anotherView.bounds.min, width: anotherView.bounds.width , height: anotherView.bounds.height)

在这种情况下,“yourView”将其大小更改为“anotherView”。

yourView.frame = CGRect(x: anotherView.bounds.minX, y: anotherView.bounds.min, width: anotherView.bounds.width , height: anotherView.bounds.height / 2)

此示例将高度更改为“anotherView”框架的 1/2。

希望对你有所帮助。

【讨论】:

【参考方案3】:

我错过了一些东西.. ?

我没有得到的是,如果您不为它设置高度并且让内容对视图的底部有约束,那么视图将根据其内容调整大小。

所以我最终将隐藏控件的高度设置为 0,并将底部控件约束设置为父底部。

【讨论】:

以上是关于UIView 调整内容大小的主要内容,如果未能解决你的问题,请参考以下文章

调整 UIView 的大小以适应 uiScrollView 中的所有内容

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

调整 UIView 的大小,以便我绘制的任何内容都可见 - Objective C

调整 UIView 的大小以在关闭自动布局的情况下包装其内容

根据子视图大小调整 XIB 中的 UIView 大小

UILabel 调整大小不起作用