动画以调整 UIView 的高度

Posted

技术标签:

【中文标题】动画以调整 UIView 的高度【英文标题】:Animate to resize height of UIView 【发布时间】:2014-03-28 06:48:56 【问题描述】:

我面临一个非常奇怪的问题,我有 UIView grandWrapper,即当我将 grandWrapper 的高度设置为零时,我现在添加了许多子视图,理想情况下,grandWrapper 的高度应该为零并且所有内部视图都应该消失因为它们存在于该 grandWrapper 视图中,但它将高度设置为零并且所有子视图仍然存在。有人可以帮忙吗?

附:我以编程方式创建子视图。提前致谢

【问题讨论】:

【参考方案1】:

如果您希望子视图根据父视图的高度调整其高度,则使子视图的 autoresizingMask 属性包含 UIViewAutoresizingFlexibleHeight

或者您可以将视图的clipsToBounds 属性设置为YES。

【讨论】:

【参考方案2】:

对你的问题有点困惑

1.如果你想删除你的 grandWrapper 子视图然后调用下面的函数

-(void)clearReportContent

    if(grandWrapper!=nil)
        [[grandWrapper subviews] makeObjectsPerformSelector: @selector(removeFromSuperview)];
 

2.如果将 grandWrapper 高度设置为零时屏幕上出现子视图, 然后在开始时设置 grandWrapper.cliptoBounds=YES; 在 grandWrapper 上添加子视图。

【讨论】:

我没有删除它,我正在将 grandWrapper 的高度从 0 设置为 150,然后在按钮点击 150-0 时再次设置动画,因此我希望所有内部视图相对于它们的父项消失而消失。 然后使用第二个选项或设置子视图的自动调整大小掩码,如@KudoCC 所说

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

动画调整全屏 UIView 的大小以在屏幕底部显示另一个 UIView

如何在不制作 IBOutlet 的情况下以编程方式在 Swift 中为 UIView 高度约束设置动画?

当我尝试以编程方式添加 UIView 时,UITableViewCell 高度不会自动调整(而是压扁我的 UIView)

UITableView 标题部分的高度不会为自定义 UIView() 类自动调整

调整容器视图的高度以匹配子视图的高度

UIView 根据边缘调整大小