我是 Swift 新手,当用户单击阿拉伯语按钮时,我尝试将应用程序 View 方向从 LTR 更改为 RTL。 到目前为止,我有下面的代码,并且所有文本都正确更改,除非方向。仅当我关闭并重新打开应用程序时,该方向才有效。 请帮忙
@IBAction func goToLanguage(sender: AnyObject) {
let availableLanguages = Localize.availableLanguages()
actionSheet = UIAlertController(title: nil, message: "Switch Language", preferredStyle: UIAlertControllerStyle.ActionSheet)
for language in availableLanguages {
let displayName = Localize.displayNameForLanguage(language)
let langString = language as String
if(langString != "Base"){
let languageAction = UIAlertAction(title: displayName, style: .Default, handler: {
(alert: UIAlertAction!) -> Void in
Localize.setCurrentLanguage(language)
NSUserDefaults.standardUserDefaults().setObject([language], forKey: "AppleLanguages")
NSUserDefaults.standardUserDefaults().synchronize()
let delegate = UIApplication.sharedApplication().delegate as! AppDelegate
delegate.refreshEverything()
})
actionSheet.addAction(languageAction)
}
}
let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: {
(alert: UIAlertAction) -> Void in
})
actionSheet.addAction(cancelAction)
self.presentViewController(actionSheet, animated: true, completion: nil)
}
最佳答案
您可以在不关闭应用程序的情况下强制 UIView 方向。 对于阿拉伯语,添加以下代码来更改方向:
UIView.appearance().semanticContentAttribute = .forceRightToLeft
对于法语或英语使用:
UIView.appearance().semanticContentAttribute = .forceLeftToRight
关于ios - 更改本地化语言后快速更新 Storyboard方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40087905/