如何对UILabel执行连字符,该UILabel对与iOS首选项中设置的语言不同的语言敏感?

时间:2015-11-16 02:31:42

标签: ios swift uilabel hyphenation

我找不到任何关于这个非常具体的问题的提示:如何设置执行UILabel连字的语法规则?

你知道,我的应用程序已经本地化为英语和德语,并包含德语街道名称(显然不会翻译成英语)。当设备的语言设置为德语时,连字符可以正常工作。

但是在语言设置为英语的设备上,连字符似乎与德语街道名称相悖(意思是:连字符正在发生,但语法错误)。我认为这是因为它源自iOS首选项中设置的语言。

这是我如何在该标签上执行连字符:

func updateStreetNameLabel(streetName: String) {

    let paragraphStyle: NSMutableParagraphStyle = NSMutableParagraphStyle()
    paragraphStyle.hyphenationFactor = 1.0
    paragraphStyle.alignment = .Center

    let streetNameWithHyphens: NSMutableAttributedString = NSMutableAttributedString(string: streetName, attributes: [NSParagraphStyleAttributeName : paragraphStyle])

    streetNameLabel.attributedText = streetNameWithHyphens

}

我原本以为有一个特定的属性可以做到这一点,但我无法找到如何去做。 感谢您对这个微小但棘手的问题的任何帮助! S上。

1 个答案:

答案 0 :(得分:0)

You can set the user's language preference from within your app,虽然不推荐。一个更好但更痛苦的解决方案是将带有英语连字规则的德语地名添加到用户的字典中,如果可能的话。但最好的解决方案可能是在应用程序以英语运行时关闭连字符。