Я столкнулся с неприятной проблемой. Я хочу, чтобы метка отображала текстовую строку с частями строки, имеющими разные цвета фона.
Этот код работает:
let s = NSMutableAttributedString(string: "test me bar", attributes: [:])
s.addAttribute(NSBackgroundColorAttributeName, value: UIColor.yellowColor(),
range: NSMakeRange(4, 2))
s.addAttribute(NSBackgroundColorAttributeName, value: UIColor.blueColor(),
range: NSMakeRange(8, 2))
self.detailDescriptionLabel.attributedText = s
Но если я удалю только один из этих вызовов addAttribute
(неважно какой), так что я укажу только один диапазон строки, чтобы иметь атрибут цвета фона, то цвет фона нигде в строке не отображается.
У меня iOS 8.1, и это происходит в симуляторе и на моем iPhone 6. Я нашел эту проблему в своем коде и воспроизвел ее, используя только приведенный выше фрагмент в пустом проекте.
Любые идеи? Я рву на себе волосы. Это урезанная версия проблемы, но для моего проекта важно иметь строки, в которых только одна область имеет цвет фона.
РЕДАКТИРОВАНИЕ Если я установлю для одного из цветов фона значение UIColor.clearColor()
, все будет работать как положено. Возможно, я смотрю на ошибку в UIKit?