Ios 更改semanticContentAttribute后导航速度变慢

Ios 更改semanticContentAttribute后导航速度变慢,ios,performance,localization,navigation,Ios,Performance,Localization,Navigation,要将LTR更改为RTL,我使用的是一个带有自动布局约束的故事板。在按钮上单击将语言更改为阿拉伯语/英语。我正在调用switchLanguage()。这将LTR更改为RTL,反之亦然。所有的布局看起来都不错 问题是在多次将semanticContentAttribute从.forceLeftToRight更改为.forceRightToLeft或反之亦然之后。应用程序导航似乎非常慢,我注意到CPU使用率达到99%。你越是切换语言,速度就越慢 func swichLanguage { if

要将LTR更改为RTL,我使用的是一个带有自动布局约束的故事板。在按钮上单击将语言更改为阿拉伯语/英语。我正在调用switchLanguage()。这将LTR更改为RTL,反之亦然。所有的布局看起来都不错

问题是在多次将semanticContentAttribute从.forceLeftToRight更改为.forceRightToLeft或反之亦然之后。应用程序导航似乎非常慢,我注意到CPU使用率达到99%。你越是切换语言,速度就越慢

func swichLanguage {
    if Lang.current = .ar {
        UIView.appearance().semanticContentAttribute = .forceRightToLeft
    } else {
        UIView.appearance().semanticContentAttribute = .forceLeftToRight
    }

    let sb = UIStoryboard.init(name: "Main", bundle: nil)
    let vc = sb.instantiateInitialViewController()
    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    appDelegate.window?.rootViewController = vc
}

嗯,我真的不知道。之前,我使用的是我在中演示的iOS9.0之前的方法。更改semanticContentAttribute属性只是更新答案的一个小测试。我没有一个真正的应用程序,所以我没有面对你的问题。你在真正的设备上测试吗?那个真正的装置是什么?我只是想在这里提出一些想法。所以,当我更改语言时,我通常会关闭所有控制器并到达我的第一个视图控制器。你是这样做还是强制布局?尝试关闭所有控制器并转到根控制器,这可能会解决速度慢的问题。谢谢。因为更改语言按钮位于rootviewcontroller中。我不能否认这一点。暂时我通过更改viewDidLoad()中所有子视图的semanticContentAttribute进行了修复。您可以查看我的解决方案,它运行良好: