AutoLayout и UILabel изменяют размер анимации, не работает должным образом при повороте устройства
У меня странная проблема с очень простой задачей.
Мне нужна очень маленькая установка, чтобы воспроизвести проблему:
|--------------------------------------|
| Parent View |
| |
||------------------------------------||
|| UILabel ||
||------------------------------------||
| |
| |
||------------------------------------||
|| UIView ||
||------------------------------------||
| |
| |
|--------------------------------------|
В приведенном выше примере у нас есть родительское представление с 2 подпредставлениями -> UILabel и простой UIView. Я использую autolayout, чтобы применить макет, показанный выше:
Constraints for UILabel:
Leading Space to superview = 0
Trailing Space to superview = 0
Fixed Height constraint (e.g. 80pt)
Top Space constraint (e.g. 50pt)
The UIView subview has the same constraint types (the values for height and top space differs).
Так что я ожидаю с этой настройкой, что оба подпредставления примут полную ширину своего родителя, поскольку мы определили, что начальное и конечное пространство должны быть равны нулю. поэтому, если изменить ширину родительского вида, ширина подпредставлений также должна измениться, чтобы оставаться выровненной.
допустим, родительское представление имеет размер 200x400 пт. когда я строю и запускаю свой пример в портрете, все выглядит хорошо. когда я поворачиваюсь в пейзаж, все по-прежнему выглядит хорошо. ширина родительских просмотров и даже ширина подпредставлений увеличилась. но теперь, когда я поворачиваюсь назад к портрету, ширина uilabels сразу получает целевую ширину без анимации:
|--------------------------------------|
| Parent View |
| |
| (immediately has target size) |
| |--------------| |
| | UILabel | |
| |--------------| |
| |
| (this subview is still |
| animating its width) |
| |------------------------------| |
|-->| UIView |