iOS 9中的RTL语言行为

时间:2015-10-04 10:25:41

标签: ios objective-c ios9

我们的应用支持RTL语言,如阿拉伯语,波斯语。

在iOS 9之后,导航控制器和标签栏控制器行为已更改。我发现只有这个链接ios-9-disable-support-for-right-to-left-language才能解决这个问题

我在我的appDelegate中编写此代码并且工作正常,导航栏和标签栏设置为LTR。

if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"9.0")) {
    [[UINavigationBar appearance] setSemanticContentAttribute:UISemanticContentAttributeForceLeftToRight];
    [[UITabBar appearance] setSemanticContentAttribute:UISemanticContentAttributeForceLeftToRight];
}

我的问题是: 我无法改变交互式流行手势Direction。

enter image description here

3 个答案:

答案 0 :(得分:2)

我正在努力解决同样的问题并最终找到解决方案

你只需要为navigationController.view

设置SemanticContentAttribute 在rootViewController的viewDidLoad:

[self.navigationController.view setSemanticContentAttribute:UISemanticContentAttributeForceLeftToRight];
[self.navigationController.navigationBar setSemanticContentAttribute:UISemanticContentAttributeForceLeftToRight];

答案 1 :(得分:2)

在Swift中

TableRowFactory factory = new TableRowFactory();
List<TableRow> allRows = 
    table.findElements(By.xpath("//tr[@role='row']")).stream()
      .map(element -> factory.getRow(element))
      .collect(Collectors.toList());    

答案 2 :(得分:0)

如果您正在创建自定义弹出窗口,则有两种方法可以解决此问题。

  1. 在.h文件中定义一个宏,以便在运行时检测它是否为RTL语言。

    定义IS_RTL [UIApplication sharedApplication] .userInterfaceLayoutDirection == UIUserInterfaceLayoutDirectionRightToLeft

  2. 然后根据IS_RTL.Like

    创建自定义布局
    if (IS_RTL)
    //Do Arabic Implementation
    else
    //Do other language implementation
    
    1. 如果您是从Storyboard创建UI,则首要项目的领先或尾随空间和值的设置约束将是尊重语言方向