Tôi có một vấn đề tương tự.
Tôi có một trò chơi hoạt động theo hướng ngang (cả khung cảnh bên trái và bên phải).
Để quản lý ứng dụng nhiều chế độ xem, tôi sử dụng UIviewController gốc, tức là một UIViewcontroller giả với giao diện người dùng không có gì. Sau đó, tôi thêm mọi UIview khác vào nó dưới dạng một chế độ xem phụ.
Khi khởi động ứng dụng, trình mô phỏng nhanh chóng quay sang hướng dọc và tôi nhận được mỗi chế độ xem với thuộc tính khung hình của nó trông giống như (0, -80,320,480). Điều này dẫn đến quan điểm bị cắt bớt bởi một hình chữ nhật 160 X 320 ở phía bên phải.
Tôi đã nhận thấy rằng phương thức - shouldAutorotateToInterfaceOrientation: của mỗi chế độ xem phụ chỉ được gọi một lần và điều đó xảy ra khi được thêm vào chế độ xem gốc. Sau đó, khi xoay thiết bị, chỉ chế độ xem gốc mới được gọi là phương thức.
Không có gì đáng ngạc nhiên khi một cuộc gọi phương thức * willAnimate * chỉ được gửi đến chế độ xem gốc, vì vậy, việc xác định bất kỳ phương pháp nào trong các phương pháp này là vô nghĩa.
Những phương pháp này được gọi mỗi khi định hướng được thay đổi thành định hướng được chấp nhận bởi phương thức - shouldAutorotateToInterfaceOrientation:. vì vậy tôi figured tôi có thể chnage của tôi subviews 'khung tài sản từ đó.
Để thực hiện điều này, tôi đã xác định phương pháp sau đây trong lớp rootViewController tôi:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
{
subview1_ViewController.view.frame = CGRectMake(0,0,480,320);
subview2_ViewController.view.frame = CGRectMake(0,0,480,320);
...
}
Tôi không hiểu tại sao sở hữu khung không được cập nhật, nhưng tôi biết cách giải quyết này hoạt động.
Hy vọng điều này sẽ giúp ...
Câu hỏi hay, tôi đã nghi ngờ điều này trong tâm trí của mình kể từ ngày. Đã sắp hỏi một câu hỏi tương tự và gặp phải vấn đề này! –
Tôi nên hỏi câu hỏi của tôi như bạn đã làm. Đây là tất cả các câu hỏi liên quan đến phổ quát, "khung tùy chỉnh, đọc tài liệu, ok bây giờ làm thế nào tôi phải biết làm thế nào nó tất cả nên làm việc". –