Mam dziwny problem z bardzo prostym zadaniem.AutoLayout i UILabel zmiana rozmiaru animacji nie działa poprawnie na obrót urządzenia
ja potrzebuje bardzo małych instalacji do odtworzenia problemu:
|--------------------------------------|
| Parent View |
| |
||------------------------------------||
|| UILabel ||
||------------------------------------||
| |
| |
||------------------------------------||
|| UIView ||
||------------------------------------||
| |
| |
|--------------------------------------|
W powyższym przykładzie mamy widok rodzica z 2 subviews -> A UILabel i prosty UIView. Im przy autoLayout zastosować układ pokazany powyżej:
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).
Więc co się spodziewać z tej konfiguracji jest to, że oba subviews przyjmie pełną szerokość jego rodzica jak określiliśmy, że początkowe i końcowe przestrzeń powinna wynosić zero. więc jeśli zmienisz szerokość widoku nadrzędnego, szerokość subviews również powinna się zmienić, aby pozostać wyrównanym.
pozwala powiedzieć, że widok nadrzędny ma wymiar 200x400 pt. kiedy buduję i uruchamiam mój portret w ujęciu portretowym, wszystko wygląda dobrze. kiedy obracam się do krajobrazu, wszystko nadal wygląda dobrze. Widoki rodzica szerokości, a nawet szerokość subviews wzrosła. ale teraz, kiedy obraca się z powrotem do portretu uilabels szerokość natychmiast dostaje swoją docelową szerokość bez animacji:
|--------------------------------------|
| Parent View |
| |
| (immediately has target size) |
| |--------------| |
| | UILabel | |
| |--------------| |
| |
| (this subview is still |
| animating its width) |
| |------------------------------| |
|-->| UIView |<--|
| |------------------------------| |
| |
| |
|--------------------------------------|
rodzic widoki szerokość i UIView subviews szerokość są prawidłowo animowane. to tylko uilabel, który ma dziwne zachowanie tutaj i nie mogę się dowiedzieć, co powoduje ten problem.
Programowo tworzysz hierarchię i ograniczenia? W takim przypadku, czy ustawiłeś translatesAutoresizingMaskIntoConstraints na NO? –
wymyśliłeś to? Mam ten sam problem – user18853