如何以编程方式更新视图的高度?

Posted

技术标签:

【中文标题】如何以编程方式更新视图的高度?【英文标题】:How to update Height of the view Programmatically? 【发布时间】:2018-04-11 12:44:57 【问题描述】:

我面临的一个问题与自动布局有关。我首先通过自动布局将包含图像视图的视图高度设置为零。但是如果调用了某个函数,我希望将高度更新为一个恒定值,但我的视图高度没有得到更新。 这是代码,我已经在函数内部以编程方式更新了高度,但它不起作用。

let heightContraint = NSLayoutConstraint(item: businessImageView, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: 40)
businessImageView.addConstraint(heightContraint) 

【问题讨论】:

可能重复 - ***.com/questions/43010173/… How to programmatically increase the height of UIView with Swift的可能重复 How to update the constant height constraint of a UIView programatically? 【参考方案1】:

首先创建高度约束的IBOutlet。

您只需要更改约束的constant 属性。 例如:

self.consTblFilterHeight.constant = 100.0
self.view.layoutIfNeeded() 

self.view 替换为要更改高度的视图的父视图。

【讨论】:

【参考方案2】:

创建你的约束出口,然后像这样设置它:

self.heightConstraintOutlet.constant = newHeightValue

【讨论】:

【参考方案3】:

businessImageView.addConstraint(heightContraint) 不是更新约束的代码。它增加了一个约束。 为了更新父视图(有图像)的高度,您需要更新 businessImageView 的 高度约束的常量。

businessImageView.heightConstraint.constant = 40
self.view.layoutIfNeeded()

【讨论】:

【参考方案4】:

方法

激活约束 改变常数值

代码

heightConstraint.isActive = true 
heightConstraint.constant = 20

【讨论】:

谢谢,打错字了

以上是关于如何以编程方式更新视图的高度?的主要内容,如果未能解决你的问题,请参考以下文章

如何根据布局高度以编程方式更改视图高度

标签文本增加时如何以编程方式增加集合视图单元格高度?

如何以编程方式更改 UICollectionView 页脚视图高度

如何动态修改日历高度?

android - 获取以编程方式创建的视图的估计高度

自定义 tableviewcell 动态高度未根据约束更新(以编程方式自动布局)