相关疑难解决方法(0)

Cocoa Autolayout:内容拥抱与内容压缩阻力优先

关于Cocoa Autolayout关于内容拥抱和抗压缩性之间差异的Apple文档,我找不到明确的答案.

有人可以解释他们的用法和差异吗?

cocoa autolayout

634
推荐指数
7
解决办法
20万
查看次数

启用+禁用自动布局约束

我有一个简单的(我认为)问题:我有一个UIImageView,我在故事板中设置了多个约束.

有时,我需要禁用约束,并frame手动设置它,但稍后,我将要重新启用这些约束并让视图返回到约束所决定的位置.

我以为我可以这样做:

@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var constraint: NSLayoutConstraint!

func example() { 

    //to set its location and size manually
    imageView.removeConstraint(constraint) 
    imageView.frame = CGRectMake(...)

    //to cause it to return to its original position
    imageView.addConstraint(constraint) 

}
Run Code Online (Sandbox Code Playgroud)

但是,有了这个,我得到了错误2015-08-26 01:14:55.417 Constraints[18472:923024] The view hierarchy is not prepared for the constraint: <NSLayoutConstraint:0x7fbb72815f90 V:[_UILayoutGuide:0x7fbb72814c20]-(100)-[UIImageView:0x7fbb72814540]>.有谁知道为什么会出现这个错误?

view通过调用添加约束来self.view.addConstraint(...)消除错误,但仍然没有将图像视图带回到它应该的位置.

我注意到我甚至不必删除或停用约束,以便能够设置imageView没有问题的框架,只要我不打电话setTranslatesAutoresizingMaskIntoConstraints(true).

我已经看过这个问题,但答案似乎不必要地复杂,可能已经过时,甚至不适用.

我也看到了这个问题,但这并没有涵盖可以重新启用的约束 - 只能禁用它们.

试图设置active属性:

self.top.active = …
Run Code Online (Sandbox Code Playgroud)

nslayoutconstraint swift

31
推荐指数
2
解决办法
2万
查看次数

标签 统计

autolayout ×1

cocoa ×1

nslayoutconstraint ×1

swift ×1