Тип растяжения и кернинга, не работает в раскадровке с @IBDesignable
ВотIBLabel
который отслеживает / растягивает шрифт.
Он отлично работает в сборке. Но изменения не показывают в прямом эфире в раскадровке.
// UILabel, but you can set
// the tracking (that's the overall amount of space between all letters)
// and streching (actually squeeze or stretch the letters horizontally)
// Note: it's very common that typographers need you to adjust these.
import UIKit
@IBDesignable
class StyledLabel: UILabel
{
@IBInspectable var tracking:CGFloat = 0.8
// values between about 0.7 to 1.3. one means normal.
@IBInspectable var stretching:CGFloat = -0.1
// values between about -.5 to .5. zero means normal.
override func awakeFromNib()
{
let ats = NSMutableAttributedString(string: self.text!)
let rg = NSRange(location: 0, length: self.text!.characters.count)
ats.addAttribute(
NSKernAttributeName, value:CGFloat(tracking), range:rg )
ats.addAttribute(
NSExpansionAttributeName, value:CGFloat(stretching), range:rg )
self.attributedText = ats
}
}
Симулятор справа работает отлично.
На самом деле не показывает в прямом эфире на раскадровке (см. Слева).
Дикая догадка, мне не хватает функции инициализации?
Или в чем может быть проблема?
Примечание - установите размер шрифта, чтобы соответствовать высоте:
Возможно, вы захотите установить размер шрифта, чтобы заполнить рамку метки на всех устройствах. Чтобы сэкономить на вводе, вот класс, который делает «точку для высоты», отслеживая и растягивая:https://stackoverflow.com/a/37277874/294884