NSMutableParagraphStyle:某些属性不适用于iOS 10.3.2和10.3.3

时间:2018-04-09 14:23:10

标签: ios swift

我尝试按以下方式设置NSMutableParagraphStyle

@IBOutlet weak var headline: UILabel! {
    didSet {
        let style = NSMutableParagraphStyle()
        style.maximumLineHeight = 15
        style.lineSpacing = 0
        style.alignment = .center
        let attributes: [NSAttributedStringKey : Any] = [NSAttributedStringKey.paragraphStyle : style,
                                                         NSAttributedStringKey.baselineOffset : 0]

        let attributedString = NSMutableAttributedString(string: headline.text!, attributes: attributes)
        headline.attributedText = attributedString
    }
}

... 不会改变iOS 10.3.2和.3上文本的外观。它适用于iOS 9和iOS 11。

我添加了baselineOffset似乎可以解决某些用户的问题(radar) - 这对我的情况没有帮助。是否还有其他解决方法,或者现在所有使用10.3.x的用户都需要整天使用破碎的布局?

编辑: @Larme我试过这个,这也不起作用:

        let attributedString = NSMutableAttributedString(string: headline.text!, attributes: attributes)
        attributedString.addAttribute(NSAttributedStringKey.backgroundColor, value: UIColor.blue, range: NSMakeRange(0, 3))
        headline.attributedText = attributedString
编辑:在iOS 10.3和11设备上测试了matt的代码后,我得出的结论是,在设置行间距和最大高度时存在问题 - 设置文本对齐无限制地工作。即使没有在代码中做任何事情,只是使用Xcode UI设置我的属性文本,我最终得到以下结果(注意行间距):

iOS 11设备

iOS 10.3.3设备

1 个答案:

答案 0 :(得分:0)

没有。这绝对是一个错误,我认为没有办法解决它的问题。

对不起:(