我正在尝试开发双语应用程序,并且为了适应用户界面来支持从左到右和从右到左的语言。我已将我的模拟器设置切换为希伯来语,这是一种RTL语言,但它根本不会影响视图的布局(自动布局似乎设置正确),但更重要的是这种方法(在我的UITableViewController中,如下图所示):
if UIView.userInterfaceLayoutDirectionForSemanticContentAttribute(view.semanticContentAttribute) == UIUserInterfaceLayoutDirection.RightToLeft {
print("RTL")
}
else{
print("LTR")
}
打印LTR
不确定方法是否错误,或者我的应用程序的设置是否未正确配置。这是一个截图,以便您可以看到我的示例项目的样子(请参阅状态栏顶部的希伯来语)
我遵循Apple's Docs的国际化支持,但一定错过了(除非这是一个错误)。
使用Swift 2.0& xcode 7.0.1
答案 0 :(得分:0)
semanticContentAttribute
属性是布局方向更改时组件应如何呈现的属性。
默认为未指定。
所以你总是弄错了
" LTR"
将您的代码更改为此,您将获得当前布局的正确打印:
if UIView.userInterfaceLayoutDirectionForSemanticContentAttribute(UIUserInterfaceLayoutDirection.Unspecified) == UIUserInterfaceLayoutDirection.RightToLeft {
print("RTL")
}
else{
print("LTR")
}