tôi gặp sự cố lạ trên một tác vụ rất đơn giản.Hoạt ảnh chỉnh lại kích thước AutoLayout và UILabel không hoạt động bình thường trên xoay thiết bị
Tôi cần một thiết lập rất nhỏ để tạo lại vấn đề:
|--------------------------------------|
| Parent View |
| |
||------------------------------------||
|| UILabel ||
||------------------------------------||
| |
| |
||------------------------------------||
|| UIView ||
||------------------------------------||
| |
| |
|--------------------------------------|
Trong ví dụ trên chúng ta có một cái nhìn mẹ với 2 subviews -> Một UILabel và một UIView đơn giản. Im sử dụng autolayout để áp dụng cách bố trí hiển thị ở trên:
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).
Vì vậy, những gì tôi mong đợi với thiết lập này, là cả hai subviews sẽ áp dụng toàn bộ chiều rộng của mẹ như chúng ta định nghĩa rằng ở đầu và đuôi không gian có thể không. do đó, nếu thay đổi chiều rộng của chế độ xem gốc, chiều rộng của các bản xem trước cũng sẽ thay đổi, để luôn được căn chỉnh.
cho phép nói chế độ xem gốc có kích thước 200x400 pt. khi tôi xây dựng và chạy ví dụ của tôi trong bức chân dung, mọi thứ sẽ ổn. khi tôi xoay ngang, mọi thứ vẫn ổn. chiều rộng của chế độ xem gốc và thậm chí chiều rộng của bản xem trước cũng lớn hơn. nhưng bây giờ khi tôi xoay trở lại chân dung các UILabels rộng ngay lập tức trở nên rộng mục tiêu của mình mà không cần bất kỳ hình ảnh động:
|--------------------------------------|
| Parent View |
| |
| (immediately has target size) |
| |--------------| |
| | UILabel | |
| |--------------| |
| |
| (this subview is still |
| animating its width) |
| |------------------------------| |
|-->| UIView |<--|
| |------------------------------| |
| |
| |
|--------------------------------------|
phụ huynh quan điểm rộng và UIView subviews chiều rộng là động đúng cách. của nó chỉ có uilabel có một hành vi kỳ lạ ở đây và tôi không thể tìm ra những gì gây ra vấn đề đó.
Bạn có đang tạo phân cấp và ràng buộc theo chương trình không? Trong trường hợp đó, bạn đã thiết lập translatesAutoresizingMaskIntoConstraints thành NO? –
bạn đã tìm ra điều này? Tôi gặp vấn đề tương tự – user18853