2015-02-17 17 views
5

Tôi đang sử dụng tính năng tự động điền cho các phần của giao diện người dùng của mình. Khi tôi kiểm tra chiều rộng của chế độ xem trong chế độ xemWillAppear, chiều rộng chưa được cập nhật. Nó được cập nhật sau khi gọi lại thứ hai tới - (void) updateViewConstraints. Vấn đề là tôi thiết lập các phần của giao diện người dùng (sử dụng spring và struts vì các lý do cũ) dựa trên chiều rộng này trong viewWillAppear. Khi nào là thời điểm tốt để thiết lập giao diện người dùng cũ này có tham số chiều rộng?Bố cục tự động = ViewWillAppear có độ rộng không chính xác của chế độ xem

cảm ơn

+0

Chỉ cần 'view.layoutIfNeeded()' ở đầu 'viewWillAppear' – onmyway133

Trả lời

12

Bố cục xảy ra sau khi viewWillAppear trả về. Làm điều đó trong viewDidLayoutSubviews (trong bộ điều khiển chế độ xem của bạn) hoặc trong layoutSubviews (trong lớp con chế độ xem tùy chỉnh của bạn). Dù bằng cách nào, hãy nhớ gọi số super trước.

Cách khác là buộc bố cục bằng cách gửi [view layoutIfNeeded]. Sau đó, bạn có thể thêm các bản xem trước và đặt lò xo và thanh chống của chúng. Hệ thống sẽ thực hiện lại bố cục (vào thời điểm thông thường) vì bạn đã thêm các bản xem trước.

+0

của bạn có vẻ tốt! cảm ơn – FatalError

Các vấn đề liên quan