У меня есть универсальный интерфейс приложения 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) {
}];
}