Luk*_*uke 5 objective-c uitableview ios autolayout
我有一个UITableViewCell使用AutoLayout布局的子类,我想要一个小动画,其中图像视图转换,增长一点并缩小.
目前,由于受到限制,图像右侧的标签也在移动(应该如此).
我想要一种快速简便的方法暂时说"在这个动画运行时将这些标签保留在当前状态".这是我可以做的事情,而不需要删除和重新添加这些约束,这是很麻烦的?
从iOS 8开始,NSLayoutConstraints现在有一个active可以更改的属性myConstraint.active = NO;.这将删除约束,而将此值设置为YES[re]添加它:
激活或取消激活约束会调用addConstraint:和removeConstraint:在视图上,该视图是此约束管理的项目的最近共同祖先.使用此属性而不是直接调用addConstraint:或removeConstraint:. 资源
另外,有两个新的类方法activateConstraints:,deactivateConstraints:它们采用一系列约束(NSArray<NSLayoutConstraint>),这样可能会有所帮助,特别是如果你有一个IBOutletCollection约束.
[NSLayoutConstraint deactivateConstraints:myConstraints];
没有 API 可以说“将这些视图保留在此处”,从而暂时禁用自动布局的某些部分。有几种可能的解决方案:
[super layoutSubviews](或删除图像视图的转换,运行自动布局,然后将其放回去)frameForAlignmentRect:,并alignmentRectForFrame:获得自动布局以使用未转换的框架进行对齐。更多详细信息和建议可在此处的答案中找到,这是一个类似的如何使变换和自动布局一起发挥作用的问题:How do I adjustment theanchor point of a CALayer, when Auto Layout is being using?
| 归档时间: |
|
| 查看次数: |
1706 次 |
| 最近记录: |