1

对于这个非常具体的问题,我找不到任何提示:如何设置在 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。

4

1 回答 1

0

可以在应用程序中设置用户的语言偏好,但不建议这样做。一个更好但更痛苦的解决方案是将带有英语连字符规则的德语地名添加到用户的字典中,如果可能的话。但最好的解决方案可能是在应用程序以英语运行时关闭连字符。

于 2015-11-16T02:39:21.713 回答