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

时间:2018-04-11 12:44:58

标签: ios swift autolayout ios-autolayout

我面临的一个问题与自动布局相关。我首先通过自动布局将包含图像视图的视图高度设置为零。但是如果调用了某个函数,我希望将高度更新为常量值,但我的视图高度不会更新。 这是代码,我在函数内部以编程方式更新了高度,但它无法正常工作。

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

4 个答案:

答案 0 :(得分:0)

创建约束出口,然后将其设置为:

  • self.heightConstraintOutlet.constant = newHeightValue

答案 1 :(得分:0)

方法

  • 激活约束
  • 更改常量值

代码

heightConstraint.isActive = true 
heightConstraint.constant = 20

答案 2 :(得分:0)

首先创建高度约束的IBOutlet。

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

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

self.view替换为您正在更改高度的视图的父视图。

答案 3 :(得分:0)

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

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