매우 간단한 작업에서 이상한 문제가 있습니다. >은 UILabel의 간단한 UIView의 - 우리가이 파단와 부모보기가 위의 예에서장치 회전시 AutoLayout 및 UILabel 크기 조정 애니메이션이 제대로 작동하지 않습니다.
|--------------------------------------|
| Parent View |
| |
||------------------------------------||
|| UILabel ||
||------------------------------------||
| |
| |
||------------------------------------||
|| UIView ||
||------------------------------------||
| |
| |
|--------------------------------------|
:
나는 문제를 재현하는 아주 작은 설정이 필요합니다. 자동 레이아웃을 사용하여 임 레이아웃 위에 표시된 적용 :
이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).
그래서 내가이 설정과 기대, 우리는 공간을 선행 및 후행하는 0이되어야한다는 규정을 모두 파단은 부모의 전체 폭을 채택 할 것입니다. 그래서 상위 뷰의 너비를 변경하면, 정렬 된 상태를 유지하기 위해 하위 뷰의 너비도 변경되어야합니다.
부모보기의 크기가 200x400 pt라고 가정합니다. 내가 빌드하고 세로에서 내 예제를 실행하면 모든 것이 정상적으로 보입니다. 내가 경관으로 회전하면, 모든 것이 여전히 멋지게 보입니다. 상위 뷰 너비와 심지어 하위 뷰 너비가 더 커졌습니다. 내가 다시 세로로 uilabels이 폭 회전 할 때하지만 지금 즉시 애니메이션없이 대상의 폭을 가져옵니다
|--------------------------------------|
| Parent View |
| |
| (immediately has target size) |
| |--------------| |
| | UILabel | |
| |--------------| |
| |
| (this subview is still |
| animating its width) |
| |------------------------------| |
|-->| UIView |<--|
| |------------------------------| |
| |
| |
|--------------------------------------|
견해는 폭 부모와 UIView의 서브 뷰 폭은 제대로 애니메이션된다. 그 이상한 행동을하는 유일한 uilabel 그리고 그 문제를 일으키는 원인을 찾을 수 없습니다.
계층 구조와 제약 조건을 프로그래밍 방식으로 만들고 있습니까? 이 경우 translatesAutoresizingMaskIntoConstraints를 NO로 설정 했습니까? –
당신이 이것을 알아 냈습니까? 나는 같은 문제를 겪고있다. – user18853