我有一个使用UITableViewCell部署的AutoLayout子类,我想要一个小动画,其中图像视图转换、增长和缩小。
目前,由于受到限制,图像右侧的标签也在移动(应该是这样)。
我想要一个快速和简单的方法,暂时说“保留这些标签,他们目前的地方,而这个动画运行”。这是我可以做的事情,不需要删除和重新添加这些约束,这是很多麻烦?
发布于 2014-07-07 12:39:14
没有API可以说“将这些视图保留在这里”,暂时禁用了自动收费表的某些部分。有几种可能的解决办法:
[super layoutSubviews]中运行autolayout后将标签贴回您想要的位置(或删除图像视图的转换,运行autolayout,然后将其放回)frameForAlignmentRect:和alignmentRectForFrame:,以获得自动输出,以使用未转换的框架用于对齐。这里的答案提供了更多的细节和建议,这是一个类似的问题,即如何使转换和自动收费表一起播放:当使用自动布局时,如何调整CALayer的锚点?。
发布于 2016-01-15 20:16:26
从iOS 8开始,NSLayoutConstraints现在有一个可以更改myConstraint.active = NO;的active属性。这将消除约束,同时将此值设置为YES将读取它:
激活或取消激活约束调用addConstraint:和removeConstraint:在视图上,该视图是该约束管理的项的最接近的共同祖先。使用此属性而不是直接调用addConstraint:或removeConstraint:。来源
此外,还有两个新的类方法activateConstraints:和deactivateConstraints:,它们采用了一个约束数组(NSArray<NSLayoutConstraint>),所以这是有帮助的,特别是当您有一个带有约束的IBOutletCollection时。
[NSLayoutConstraint deactivateConstraints:myConstraints];
https://stackoverflow.com/questions/24608638
复制相似问题