Nó thực sự phụ thuộc vào những gì bạn đang đặt ra.
Nếu bạn nhìn vào ứng dụng Cài đặt Apple, bạn có thể thấy rằng họ sử dụng chế độ xem bảng cho bố cục, với các ô tùy chỉnh cho hầu hết các hàng. Với điều đó, bạn có thể cho phép một giao diện đơn giản để xoay khá rẻ bằng cách chỉ cần làm đầy chiều rộng của các ô. Điều này thậm chí áp dụng cho những thứ như Mail, nơi có các ô chỉnh sửa văn bản trong mỗi hàng. Và các bảng có thể dễ dàng tất cả trong suốt, chỉ với các nút hoặc nhãn có thể nhìn thấy, vì vậy chúng không giống như các bảng.
Bạn có thể nhận được rất nhiều milage ra khỏi autoresizingMask của mọi UIView. Nếu bạn có một hoặc nhiều mục có thể có chiều cao linh hoạt, thì bạn thường có thể có bố cục giao diện có vẻ tốt trong cả hai hướng. Tùy thuộc vào cách nó trông, đôi khi bạn chỉ có thể ghim mọi thứ lên trên cùng.
Trong trường hợp hiếm hoi, nếu tất cả các phần tử giao diện vừa với hình vuông, bạn chỉ có thể xoay chúng vào vị trí.
Có hai lần bạn phải xử lý rõ ràng các thay đổi định hướng. Một là khi chế độ xem di chuyển từ bên cạnh sang chế độ xem khác khi xoay vòng. Cách khác là khi bạn có các hình ảnh khác nhau cho mỗi hướng, ví dụ nếu bạn luôn muốn có chiều rộng đầy đủ.
Đôi khi có nhiều cách để giải quyết cả hai vấn đề này. Bạn có thể sử dụng hình ảnh có thể kéo dài hoặc giới hạn mình thành một chế độ xem trên mỗi dòng. Hoặc bạn có thể khóa định hướng cho các chế độ xem nhất định.
Nếu bạn phải thay đổi bố cục của chế độ xem, có phương pháp bố cục rõ ràngSubviews.Bạn nên cố gắng xử lý tất cả các bố cục có điều kiện trong phương thức này. Nó chỉ được gọi khi thay đổi giới hạn xem, ví dụ xoay vòng hoặc nếu bạn đã tạo chỗ cho bàn phím. Tạo chế độ xem tùy chỉnh cho từng cấu trúc phân cấp xem cần phản hồi xoay vòng và bố cục các bản xem phụ từ đó.
vâng, đây là loại im đang làm ... nhờ – Mark
phương pháp willRotateToInterface cho tôi không bao giờ được gọi. Bạn có phải kết nối một cái gì đó hoặc thêm một người nghe trong IB hoặc một cái gì đó? –
đây là ví dụ tuyệt vời mà tôi đang tìm kiếm. bất kỳ ví dụ thay thế nào? –