2016-10-17 11 views
2

私はSwiftを初めて使用しています。ユーザーがアラビア語ボタンをクリックすると、アプリケーションのビュー方向をLTRからRTLに変更しようとしています。 これまでのところ私はこのコードを持っていて、指示がない限りすべてのテキストが正しく変更されています。私がアプリケーションを閉じて再オープンした場合にのみ、方向は機能します。 あなたはアプリを閉じずにUIViewの方向を強制することができSwiftの変更後のストーリーボード方向の変更ローカライズ言語

@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) 

} 

答えて

5

を助けてください。アラビア語の場合 方向を変更するには、以下のコードを追加します。

UIView.appearance().semanticContentAttribute = .forceRightToLeft 

とフランス語や英語の使用のために:

UIView.appearance().semanticContentAttribute = .forceLeftToRight 
関連する問題