Dea*_*ids 1 ios6 nslayoutconstraint
我只是第一次尝试在笔尖中使用Autolayout.看来我的情况是教科书情况,这NSLayoutConstraints
将是完美的解决方案.
我有一个UITableviewCell
与UILabel
它旁边的图像.图像根据底层数据的属性而变化,它可以改变大小,有时可以隐藏.我的目的是使标签与图像保持一定距离,并在隐藏图像时跨越整个单元格.
我相应地在标签上设置了约束:
即使图像被隐藏,标签仍会被第一个约束缩短.这是预期的行为吗?我通常会在运行时计算和更改标签的宽度,但这似乎是NSLayoutConstraints的用途.
当图像不可见时,如何让它忽略对图像的约束?
从NSLayoutConstraint的类引用中,一旦约束被放置,就不允许更改约束的优先级.并且更高优先级的约束将始终覆盖较低的约束.
约束可以被删除并添加回来.如果约束是通过故事板或IB进行的,那么您可以创建一个NSLayoutConstraint的IBOutlet并将其连接起来.
如果您使用自动生成IBOutlet代码行的Xcode功能,它会将IBOutlet声明为弱.如果要在删除约束后的某个时间添加约束,则需要将其更改为强.这是为了避免在删除约束后释放约束.
然后,如果隐藏图像,则可以删除第一个约束,并且将发生第二个约束.
[self.view removeConstraint:self.firstConstraint];
Run Code Online (Sandbox Code Playgroud)
删除约束后,可能需要调用layoutIfNeeded.
使用ios 8,您可以激活/停用约束(https://developer.apple.com/library/ios/releasenotes/General/iOS80APIDiffs/frameworks/UIKit.html):
我将创建2个约束,一个具有较低优先级,并在隐藏视图时停用较高优先级的约束,并在视图再次可见时重新激活它:
[self.firstConstraint setActive:NO];
归档时间: |
|
查看次数: |
1872 次 |
最近记录: |