Итак, я не знаю, почему это происходит, но вот рисунок, изображающий это.UILabel имеет внутреннюю прокладку из программных ограничений
Если вы посмотрите на UILabel с зеленым фоном, есть обивка выше и ниже его, но я не знаю, почему это так.
Это, как я его создать:
var bodyLabel: ActiveLabel = {
let label = ActiveLabel()
label.translatesAutoresizingMaskIntoConstraints = false
label.isUserInteractionEnabled = false
label.backgroundColor = .green
label.numberOfLines = 0
label.textColor = .darkGray
label.font = UIFont.systemFont(ofSize: MessageTableViewCell.defaultFontSize())
label.enabledTypes = [.mention]
label.mentionColor = .gray //Figure this out
return label
}()
Тот факт, что это ActiveLabel не причина, почему это происходит.
Здесь все ограничения он участвует в:
self.contentView.addSubview(self.thumbnailView)
self.contentView.addSubview(self.titleLabel)
self.contentView.addSubview(self.bodyLabel)
self.contentView.addSubview(self.likeView)
let views = ["thumbnailView" : self.thumbnailView,
"titleLabel" : self.titleLabel,
"bodyLabel" : self.bodyLabel,
"likeView" : self.likeView] as [String : Any]
let metrics = ["tumbSize" : Constants.kMessageTableViewCellAvatarHeight,
"padding" : 15,
"right" : 10,
"left" : 5]
self.contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-left-[thumbnailView(tumbSize)]-right-[titleLabel(>=0)]-right-|", options: [], metrics: metrics, views: views))
self.contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-left-[thumbnailView(tumbSize)]-right-[bodyLabel(>=0)]-right-|", options: [], metrics: metrics, views: views))
self.contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-right-[thumbnailView(tumbSize)]-(>=0)-|", options: [], metrics: metrics, views: views))
if self.reuseIdentifier == Constants.MessageCellIdentifier {
self.contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-right-[titleLabel(20)]-left-[bodyLabel(>[email protected])]-left-|", options: [], metrics: metrics, views: views))
} else {
self.contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[titleLabel]|", options: [], metrics: metrics, views: views))
}
Я заметил, что когда я удалить ограничение в если утверждении, что, очевидно, мнения попадают в неудобное положение, но я замечаю, что нет более длинное зеленое дополнение. Я действительно не уверен, что вызывает это дополнение.
Это то, что the code is based on.
Я на самом деле пытался, что и это не помогло. Это влияет на пространство справа между ярлыком красного и зеленого. Это не влияет на сам ярлык. На данный момент я думаю, что, возможно, попытаюсь использовать пользовательский XIB. Я думаю, что это может быть связано с обеспечением минимальной высоты на ячейках, но даже когда я набираю несколько строк в пределах зеленого, это пространство все еще остается. – David
Я закончил создание XIB, который действительно помог мне показать, что происходит. Это было в основном правильно, но мне нужно было внести изменения в другое место, чтобы действительно получить то, что я хочу. – David