如果文本是阿拉伯语,请将UILabel文本右对齐

Bha*_*vin 6 iphone objective-c alignment uilabel ios

我在iOS App中实现了语言本地化.所以,现在用户可以在我的iPad应用程序中设置阿拉伯语.

我从服务器获取本地化的字符串响应,现在我想使用右对齐将此本地化字符串设置为我UILabel右到左格式.

更新:

我的服务器响应已经是RTL格式.现在,我只想在我的阿拉伯文本中设置文本对齐方式UILabel.

现在我必须编写代码来设置UILabel基于语言的对齐方式.

所以,我只是想知道是否有任何可用的属性UILabel,我可以UILabel在阿拉伯语的情况下制作右对齐的文本.

Jas*_*our 6

对于 Swift3 //MARK: UILabel 扩展

extension UILabel {
func decideTextDirection () {
    let tagScheme = [NSLinguisticTagSchemeLanguage]
    let tagger    = NSLinguisticTagger(tagSchemes: tagScheme, options: 0)
    tagger.string = self.text
    let lang      = tagger.tag(at: 0, scheme: NSLinguisticTagSchemeLanguage,
                                      tokenRange: nil, sentenceRange: nil)

    if lang?.range(of:"ar") != nil {
        self.textAlignment = NSTextAlignment.right
    } else {
        self.textAlignment = NSTextAlignment.left
    }
}
Run Code Online (Sandbox Code Playgroud)

将此添加到您的标签中:

detailLabel.text = details[0]

detailLabel.decideTextDirection()
Run Code Online (Sandbox Code Playgroud)


小智 2

如果您从服务器获取阿拉伯文本,则像用英语一样正常显示文本,无需对齐它。将文本右对齐即可。