J'ai cherché pendant 4 heures avant d'écrire ma question, aucune des réponses que j'ai vues en ligne ne résout ce problème.
Je travaille sur une application iOS, et dans le storyboard, lorsque j'utilise un UILabel, peu importe ce que je fais, il y a toujours un padding supplémentaire en haut, ce qui me pose un gros problème car j'essaie d'avoir un design parfait au pixel près.
Je ne comprends toujours pas d'où cela vient, j'ai essayé d'utiliser du texte brut, et j'ai essayé d'attribuer des chaînes, les deux donnent toujours ce rembourrage supplémentaire :
Capture d'écran : http://imgur.com/Fldcodl
J'ai essayé de sous-classer l'étiquette avec ce qui suit :
var textInsets = UIEdgeInsets.zero {
didSet { invalidateIntrinsicContentSize() }
}
override var bounds:CGRect {
get {
return super.bounds
}
set {
super.bounds = newValue
if (self.preferredMaxLayoutWidth != super.bounds.size.width) {
self.preferredMaxLayoutWidth = super.bounds.size.width;
self.setNeedsUpdateConstraints()
}
}
}
override func textRect(forBounds bounds: CGRect, limitedToNumberOfLines numberOfLines: Int) -> CGRect {
let insetRect = UIEdgeInsetsInsetRect(bounds, textInsets)
let textRect = super.textRect(forBounds: insetRect, limitedToNumberOfLines: numberOfLines)
let invertedInsets = UIEdgeInsets(top: -textInsets.top,
left: -textInsets.left,
bottom: -textInsets.bottom,
right: -textInsets.right)
return UIEdgeInsetsInsetRect(textRect, invertedInsets)
}
override func drawText(in rect: CGRect) {
super.drawText(in: UIEdgeInsetsInsetRect(rect, textInsets))
}
Même si les valeurs de haut gauche droite bas sont fixées à 0, j'obtiens toujours cet ennuyeux rembourrage supérieur.
Une idée pour résoudre ce problème ?
Merci de votre attention !