2010-03-04 10 views
7

Tôi đang gặp khó khăn trong việc tạo giao diện người dùng RTL trong ứng dụng iPhone. Khung này dường như không có bất kỳ hỗ trợ nào cho các ngôn ngữ RTL. Điều duy nhất là sự liên kết bên trong nhãn, đó là tốt đẹp, nhưng nó xung đột với hành vi điều khiển khác.Giao diện người dùng từ phải sang trái trong iPhone (tiếng Do Thái)

Câu hỏi đặt ra là: Có mã hoạt động cho Bảng nhìn RTL không? Một cái gì đó mà sẽ xử lý các nút tiết lộ được ở bên trái, phần tiêu đề để được liên kết bên phải, xem chỉ mục để được căn trái?

Theo như tôi hiểu rằng tôi không thể di chuyển xem chỉ số của tableview, tôi phải che phủ một số điều khiển tùy chỉnh ...

Mọi góp ý/con trỏ/ví dụ?

p.s. đây không phải là một sự trùng lặp của câu hỏi này: Right to Left Alignment for UITableView vì những gì tôi đang tìm kiếm là một tùy chỉnh sâu hơn, không chỉ là một kiểu mới của CellView.

(Cập nhật: ngày 10 tháng 3) Còn bây giờ - Tôi đã gỡ bỏ hỗ trợ cho indexView từ tableView ở tất cả, thực hiện các tế bào như quan điểm tùy chỉnh bằng cách bản thân mình (với các nút tiết lộ trên bên trái), và tùy chỉnh header/footer của bàn là tốt. điều duy nhất còn lại là Index View.

+0

Tôi đã viết một huấn luyện viên từ vựng tiếng Do Thái cho iPhone và cho đến khi hệ điều hành iPhone 3 tôi đã phải xoay quanh chuỗi trước khi tôi hiển thị chúng. Kể từ 3.0 tôi đã không có bất kỳ vấn đề với kịch bản RTL nhưng sau đó tôi chỉ sử dụng các điều khiển cơ bản nhất. –

Trả lời

1

Tôi không tin rằng có một "đúng" cách để làm điều này, nhưng đây là một giải pháp:

Trong quan điểm, tạo một UIView và thêm một UITableView với nó. Thêm UIView dưới dạng một khung nhìn con của chế độ xem "chính" của bạn và chỉ định các giới hạn của nó ở bên trái màn hình sao cho tất cả các chỉ mục bị cắt bớt bởi chế độ xem "chính". Bây giờ tất cả những gì bạn phải làm là thêm một chút mã để đồng bộ hóa hai bảng khi một chỉ mục từ subview được chạm vào.

Rõ ràng đây không phải là giải pháp tốt nhất, nhưng nó là một giải pháp có thể hoạt động.

Chúc may mắn.

+0

bạn là đúng, điều này dường như là giải pháp (mặc dù đó là một sự xấu hổ mà bạn có để có được xuống và bẩn để có được nó). bất kỳ cơ hội nào bạn thấy điều này được triển khai ở đâu đó và có thể chia sẻ một đoạn mã? – reflog

0

Tôi nghĩ rằng việc phân lớp UITableViewCell để có được hành vi mà bạn đang theo dõi là cách giải quyết vấn đề này. Nó khá tầm thường để làm điều này.

Tuy nhiên, tôi không hoàn toàn chắc chắn rằng Apple sẽ phản ứng như thế nào về việc phê duyệt ứng dụng cho AppStore. Chúng có Nguyên tắc Giao diện Người dùng khá nghiêm ngặt, nêu rõ phụ kiện trong ô bảng nằm ở bên phải của mỗi ô ... nhưng tôi chắc chắn rằng chúng sẽ hợp lý với điều này theo yêu cầu của bạn.

+0

Cảm ơn, nhưng đó không thực sự là câu trả lời cho câu hỏi, vì bạn có thể thấy tôi đã làm phân lớp 'TableCell', tôi đã hỏi về' IndexView'. – reflog

0

Tôi không có kinh nghiệm với văn bản từ phải sang trái nhưng bạn đã cố gắng đặt căn chỉnh văn bản sang phải không?

[cell.textLabel setTextAlignment:UITextAlignmentRight]; 
4

Do các ứng dụng tích hợp không lật bố cục khi bạn chuyển ngôn ngữ giao diện người dùng sang tiếng Do Thái, tôi nghĩ bạn cũng không nên làm như vậy. Nếu ứng dụng của bạn sử dụng bố cục RTL trong khi tất cả các ứng dụng khác sử dụng bố cục LTR, điều này có thể khá khó hiểu.

Có lẽ Apple sẽ cải thiện hỗ trợ RTL của họ một ngày. Nếu bạn tuân theo các điều khiển tiêu chuẩn, có thể bạn sẽ nhận được hầu hết các cải tiến này miễn phí.