我面临的一个与自动布局有关的问题。我首先通过自动布局将包含图像视图的视图高度设置为零。但是,如果调用某个函数,我希望将该高度更新为常量值,但我的视图高度没有得到更新。这是代码,我在函数内以编程方式更新了高度,但它不起作用。
let heightContraint = NSLayoutConstraint(item: businessImageView, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: 40)
businessImageView.addConstraint(heightContraint)
首先创建高度约束的 IBOutlet。
您只需要更改约束constant
属性。例如:
self.consTblFilterHeight.constant = 100.0
self.view.layoutIfNeeded()
将self.view
替换为要更改高度的视图的父视图。
创建约束出口,然后像这样设置:
- self.heightConstraintOutlet.constant = newHeightValue
businessImageView.addConstraint(heightContraint)
不是更新约束的代码。它增加了一个约束。
为了更新父视图(具有图像(的高度,您需要更新业务图像视图的高度约束的常量。
businessImageView.heightConstraint.constant = 40
self.view.layoutIfNeeded()
方法
- 激活约束
- 更改常量值
法典
heightConstraint.isActive = true
heightConstraint.constant = 20
//让我们在这里检测屏幕的高度
int height = [UIScreen mainScreen].bounds.size.height;
int width = [UIS
creen mainScreen].bounds.size.width;
// share the news
NSString *message = [[NSString alloc]initWithFormat:@"This screen is nn%i pixels high andn%i pixels wide", height, width];
NSLog(@"%@", message);