Lưu ý: Đây có thể là một bản sao của Subview Doesnt AutoSize When Added to Root View ControllerTự động Cắt tinh UIView sau Thêm vào Window
Tôi có một ứng dụng iPad mà chuyển đổi giữa quan điểm khác nhau trong cửa sổ chính của nó. Mã xem chuyển mạch trông như thế này:
- (void)switchToViewController:(UIViewController*)viewController {
if (currentViewController != viewController) {
[currentViewController.view removeFromSuperview];
currentViewController = viewController;
[window addSubview:viewController.view];
}
}
Vấn đề là khi quan điểm mới (một UISplitView) xuất hiện trong định hướng phong cảnh, nó không phải là kích thước để lấp đầy toàn bộ cửa sổ. Có một khoảng trống lớn màu đen ở bên phải. Có vẻ như chế độ xem chỉ rộng 768 pixel, thay vì chiều rộng 1024 pixel của cửa sổ ngang.
Nếu tôi xoay thiết bị theo chiều dọc và sau đó quay lại ngang, chế độ xem sẽ tự kích thước chính xác.
Nếu thiết bị ở hướng dọc, mọi thứ hoạt động tốt. UISplitView cũng được kích thước đúng nếu nó là chế độ xem đầu tiên tôi hiển thị. Sự cố chỉ xảy ra nếu tôi chuyển sang vấn đề này sau khi một chế độ xem khác được hiển thị, ở chế độ ngang.
Vì vậy, có cách nào để buộc hệ điều hành iPhone thay đổi kích thước chế độ xem sau khi đã được thêm vào cửa sổ không?
Tôi đã thử gọi sizeToFit
và setNeedsLayout
. Tôi cũng đã thử đặt chế độ xem của bounds
thành cửa sổ bounds
và tôi đã thử đặt frame
để khớp với khung của khung nhìn trước đó.
Bạn không gặp vấn đề ở đây, bởi vì bạn không tính 20px cho thanh điều hướng? – basti