Я заметил, что в iOS 10 Beta 5 (собирается попробовать Beta 6) анимация ограничений AutoLayout ведет себя по-другому.
Например, этот подход не работает так же, как в предыдущих версиях iOS:
[view addConstraints:@[constraints...]];
[view setNeedsUpdateConstraints];
[view layoutIfNeeded];
[UIView animateWithDuration:...
{
/* adjust constraint here... */
[view layoutIfNeeded]; // Only the adjusted constraints since previous layoutIfNeeded() call should animate change with duration.
} completion:{ ... }];
... В моем тестировании ограничения, первоначально добавленные с помощью addConstraints()
, будут также анимировать в iOS 10 с блоком UIView animateWithDuration()
..., что вызывает некоторое вредное/нежелательное поведение, поэтому далеко.
Например, установка ограничений влево/вправо в массиве (но вертикальные ограничения в блоке) заставляет весь вид анимировать на экране по диагонали с помощью этого подхода... который полностью неверно.
Кто-нибудь знает, как сделать это правильно как для iOS 9 (и ниже), так и для 10?