我有一个iOS应用程序通用界面,使用大小类和自动布局设计。在应用程序中,我通过激活和停用约束来进行基于约束的动画。
以下方法适用于“纵向”,但是,我为“横向”尺寸类安装了可选约束。 如何在激活/停用动画约束时考虑当前的屏幕尺寸等级?
例如,我有的图像我希望我的动画代码知道它是否应该激活一些约束,而不是其他约束。
-(NSArray*)layoutFullScreen
{
return @[self.imageYCenterConstraint,
self.imageWidthRatioConstraint];
}
-(NSArray*)layoutWorkingScreen
{
return @[self.textLabelCenterYConstraint,
self.imageHeightRatioConstraint];
}
-(void)doAnimation
{
[NSLayoutConstraint deactivateConstraints:[self layoutFullScreen]];
[NSLayoutConstraint activateConstraints:[self layoutWorkingScreen]];
[UIView animateWithDuration:0.6 delay:0 options:0 animations:^{
[self.view layoutIfNeeded];
} completion:^(BOOL finished) {
}];
}
答案 0 :(得分:1)
如果您使用的是大小类,则不得考虑旋转方面,而应考虑UITraitsCollections。您可以在traitCollectionDidChange:
中处理大小类更改并相应地修复约束。