【问题标题】:Right to Left UI in iPhone (Hebrew)iPhone 中从右到左的 UI(希伯来语)
【发布时间】:2026-01-19 10:45:01
【问题描述】:

我正在努力在 iPhone 应用程序中创建 RTL UI。该框架似乎不支持 RTL 语言。 唯一的问题是标签内的对齐,这很好,但它与其他控件的行为冲突。

问题是: RTL TableView 是否有工作代码?可以处理左侧的披露按钮、右侧对齐的部分标题、左侧对齐的索引视图?

据我所知,我无法移动 tableview 的索引视图,我必须覆盖一些自定义控件...

有什么建议/指针/例子吗?

附言这不是这个问题的重复:Right to Left Alignment for UITableView 因为我正在寻找的是更深层次的定制,而不仅仅是一种新型的 CellView。

(更新:3 月 10 日)现在 - 我已经完全从 tableView 中删除了对 indexView 的支持,我自己将单元格实现为自定义视图(左侧有显示按钮),并自定义了标题/ 表的页脚也是如此。唯一剩下的就是Index View

【问题讨论】:

  • 我为 iPhone 编写了一个希伯来语词汇训练器,在 iPhone OS 3 之前,我必须在显示字符串之前将它们转过来。自 3.0 以来,我在 RTL 脚本方面没有任何问题,但我只使用最基本的控件。

标签: iphone hebrew right-to-left


【解决方案1】:

鉴于当您将 UI 语言切换为希伯来语时,内置应用程序不会翻转其布局,我认为您也不应该这样做。如果您的应用使用 RTL 布局,而所有其他应用都使用 LTR 布局,这可能会很混乱。

也许苹果有一天会改进他们的 RTL 支持。如果您坚持使用标准控件,您可能会免费获得大部分这些改进。

【讨论】:

    【解决方案2】:

    我不认为有一种“正确”的方法可以做到这一点,但这里有一个解决方案:

    在视图中,创建一个 UIView 并向其中添加一个 UITableView。将 UIView 添加为“主”视图的子视图,并将其边界指定为离开屏幕左侧,以便除索引之外的所有内容都被“主”视图剪裁。现在你所要做的就是添加一些代码来在子视图中的索引被触摸时同步两个表。

    显然这不是最好的解决方案,但它是可行的。

    祝你好运。

    【讨论】:

    • 你是对的,这看起来确实是解决方案(虽然很遗憾,你必须蹲下来弄脏才能得到它)。您是否有机会在某处看到此实现并可以共享一段代码?
    【解决方案3】:

    我认为子类化 UITableViewCell 以获得您所追求的行为是解决这个问题的方法。这样做相当简单。

    但是,我不太确定 Apple 在批准 AppStore 应用程序方面会作何反应。他们有相当严格的用户界面指南,其中规定表格单元格中的附件位于每个单元格的右侧......但我相信考虑到您的要求,他们会是合理的。

    【讨论】:

    • 谢谢,但这并不是问题的真正答案,正如你所见,我已经将TableCell 子类化了,我问的是IndexView
    【解决方案4】:

    我没有使用从右到左文本的经验,但您是否尝试将文本对齐设置为右对齐?

    [cell.textLabel setTextAlignment:UITextAlignmentRight];
    

    【讨论】:

      最近更新 更多