2016-10-10 7 views
0

Итак, я не знаю, почему это происходит, но вот рисунок, изображающий это.UILabel имеет внутреннюю прокладку из программных ограничений

enter image description here

Если вы посмотрите на 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.

ответ

1

Ну, вы добавляете, что отступы, окружив эту метку тела со значением left.

Таким образом, вместо: V:|-right-[titleLabel(20)]-left-[bodyLabel(>[email protected])]-left-|

ли что-то вроде: V:|-right-[titleLabel(20)][bodyLabel(>[email protected])]|

Это удалит как верхние и нижние отступы. Надеюсь, это поможет!

+0

Я на самом деле пытался, что и это не помогло. Это влияет на пространство справа между ярлыком красного и зеленого. Это не влияет на сам ярлык. На данный момент я думаю, что, возможно, попытаюсь использовать пользовательский XIB. Я думаю, что это может быть связано с обеспечением минимальной высоты на ячейках, но даже когда я набираю несколько строк в пределах зеленого, это пространство все еще остается. – David

+0

Я закончил создание XIB, который действительно помог мне показать, что происходит. Это было в основном правильно, но мне нужно было внести изменения в другое место, чтобы действительно получить то, что я хочу. – David