Changing to right to left RTL programmatically Changing to right to left RTL programmatically ios ios

Changing to right to left RTL programmatically


in Swift 4 try this,

//FOR RIGHT TO LEFT UIView.appearance().semanticContentAttribute = .forceRightToLeft//FOR LEFT TO RIGHT UIView.appearance().semanticContentAttribute = .forceLeftToRight


I changed my app to right to left RTL by using this :

self.transform = CGAffineTransformMakeScale(-1.0, 1.0)

This flipped the view, then i flipped the objects in the view like this:

label.transform = CGAffineTransformMakeScale(-1.0, 1.0)textField.transform = CGAffineTransformMakeScale(-1.0, 1.0)image.transform = CGAffineTransformMakeScale(-1.0, 1.0)

This made my views RTL instead of changing all constraints or rebuild the app as RTL.


Use this line of code it will change layout without closing application. From right to left

UIView.appearance().semanticContentAttribute = .forceRightToLeft

And for Left to Right Flip

UIView.appearance().semanticContentAttribute = .forceLeftToRight

and if you want to change textfield layout or text change then use this code because i faced this issue . textfield's texts was not changning layout. check this code to change layout of textfield text

extension UITextField {open override func awakeFromNib() {        super.awakeFromNib()        if UserDefaults.languageCode == "ar" {            if textAlignment == .natural {                self.textAlignment = .right            }        }    }}