25

Nếu bạn cuộn xuống một chút tại số Apple Developer Page này, bạn sẽ tìm thấy phần "Tạo giao diện thay thế cảnh quan". Cách tiếp cận cơ bản được mô tả là trình bày một tệp NIB khác nhau dưới dạng một chế độ xem khi định hướng thay đổi. Tôi đang sử dụng tính năng Storyboard, vì vậy tôi không có NIB. Làm cách nào để tải "cảnh" khác trong trường hợp đó?Bảng phân cảnh iPhone: cảnh khác nhau cho chân dung và phong cảnh

Bên cạnh đó, tôi đang sử dụng bộ điều khiển Thanh tab, tôi không muốn hiển thị chế độ xem phương thức. Tôi chỉ muốn thay thế chế độ xem dọc hiện tại bằng chế độ xem ngang được thiết kế với trình tạo giao diện và giữ thanh tab của tôi. Điều gì sẽ là cách Storyboard để đạt được nhiệm vụ "Tạo một giao diện thay thế cảnh quan"? Cảm ơn bạn.

Trả lời

19

Khi bạn thêm bộ điều khiển chế độ xem vào bảng cốt truyện, nó đi kèm với chế độ xem. Gọi rằng chế độ xem vùng chứa. Thêm hai chế độ xem vào chế độ xem vùng chứa: chế độ xem dọc và chế độ xem ngang. Đặt kích thước của chế độ xem dọc và chế độ xem ngang một cách thích hợp bằng cách sử dụng trình kiểm tra kích thước. Thêm các nút, nhiều chế độ xem, nhãn hoặc bất kỳ thứ gì vào chế độ xem dọc và ngang khi cần cho ứng dụng của bạn. Sau đó, khi định hướng thay đổi ẩn một chế độ xem và hiển thị chế độ xem khác.

+1

cách tiếp cận thú vị. Sẽ thử điều đó. Cảm ơn – Korbi

+5

Điều gì sẽ xảy ra nếu bạn sử dụng IBOutlets, chúng chỉ có thể được chỉ định cho một chế độ xem. – Paranaix

+1

@Paranaix Tôi có thể không hoàn toàn hiểu nhận xét của bạn. Câu hỏi ban đầu đặt ra một yêu cầu để có các giao diện khác nhau cho chế độ ngang và dọc. Nếu bạn đang tìm một bố cục khác cho cùng một giao diện, đó là một vấn đề khác. Có lẽ bạn nên đặt ra một câu hỏi hoàn toàn mới. –

2

Bạn có thể thiết lập bộ điều khiển điều hướng và một chế độ xem chính. Sau đó, bạn có thể sử dụng chế độ xem mẫu cho bố cục dọc và ngang (2 chế độ xem bổ sung).

Bạn sẽ cần phải thiết lập các điều khiển trên chế độ xem chính và đảm bảo mỗi người có một thẻ duy nhất. Chế độ xem chính của bạn sẽ không được sử dụng, thay vào đó bạn sẽ sao chép các điều khiển vào hai chế độ xem mẫu và thiết lập chúng dựa trên cách bạn muốn mỗi chế độ xem xem. Lợi ích cho điều này là mỗi chế độ xem sẽ giữ lại thẻ của nó và trở thành một phần rất quan trọng của việc triển khai này.

Thực hiện việc này bạn sử dụng phương pháp kết hợp liên quan đến viết một số mã giao diện người dùng và sử dụng Trình tạo giao diện. Sau khi thiết lập hai mẫu, hãy tạo một số nhận dạng duy nhất cho mỗi mẫu. Bạn sẽ phải viết một số logic để xử lý khung nhìn và các phần phụ của nó. Một phương thức đệ quy để trả về một tập hợp các phương thức này dựa trên khuôn mẫu bạn chọn.

Logic lõi trong triển khai bộ điều khiển chế độ xem gốc sẽ cần phải kiểm tra isPortrait và dựa trên điều này, bạn sẽ muốn tải chế độ xem chính xác dựa trên số nhận dạng.

Thử nghiệm với khái niệm này và xem liệu nó có phù hợp với bạn không. Những lợi ích chính khi không sử dụng hai chế độ xem riêng biệt với các điều khiển duy nhất (không phải cách tiếp cận được chia sẻ với cùng một thẻ) là bạn duy trì quyền truy cập vào các bản xem trước gốc của mình. Bất kỳ biến mẫu nào bạn xác định trong bộ điều khiển chế độ xem của bạn trỏ đến văn bản được gửi, nhãn, v.v ... tiếp tục làm như vậy bất kể chế độ xem mẫu nào được sử dụng. Điều này duy trì cách tiếp cận mô hình, khung nhìn, bộ điều khiển khi cấu trúc dữ liệu không thay đổi.

Sử dụng phương pháp này bạn vẫn có thể tối đa hóa việc sử dụng trình tạo giao diện và bố cục mẫu cho mỗi chế độ xem, trong khi vẫn có thể linh hoạt viết một số mã giao diện người dùng tùy chỉnh nếu bạn muốn. Chỉ sử dụng trình xây dựng giao diện có thể có một chút hạn chế ở lần và viết mã tùy chỉnh dựa trên định hướng khóa bạn vào một chút công việc tẻ nhạt.

Hy vọng điều này sẽ giúp một số.

0

Bạn có thể tạo tệp xib chứa 2 uiview, một ảnh chân dung và một cho cảnh quan. Chỉ định làm chủ sở hữu tệp của xib, cùng một chế độ xem của chế độ xem mà bạn có trong bảng phân cảnh. Trong chế độ xemDidLoad tải tệp xib và thêm chế độ xem phù hợp cho dọc hoặc ngang.

Vì vậy, nếu bạn có bảng phân cảnh có nhiều chế độ xem, bạn có thể đặt hai khả năng (chế độ xem dọc hoặc ngang) trong chế độ xem mà bạn muốn thay đổi hướng.

Tôi đã sử dụng giải pháp này và hoạt động rất tốt!

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