Ich suchte nach 4 Stunden vor dem Schreiben meiner Frage, keine der Antworten, die ich online gesehen habe, um dieses Problem zu lösen.iOS UILabel Größe Problem
Ich arbeite an einer iOS-App, und im Storyboard, wenn ich ein UILabel benutze, egal was ich tue, gibt es immer extra Polsterung oben, das verursacht mir ein großes Problem seit ich bin versuchen, ein Pixel perfektes Design zu haben.
Ich verstehe immer noch nicht, wo das herkommt, habe ich versucht, Plain Text verwenden, und ich versuchte, Strings zugeschrieben, die beide noch diese zusätzliche Polsterung geben:
Screenshot: http://imgur.com/Fldcodl
Ich habe versucht, Unterklasse das Etikett mit den folgenden:
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))
}
Auch mit den Werten für links oben nach rechts unten auf 0 gesetzt ich dieses lästige Top-Polsterung noch bekommen.
Irgendeine Idee, wie man das löst?
Danke!
haben Sie sizeToFit versucht? – danh
Was magst du nicht? Ich sehe kein "Top Padding". – matt
@danh ja, es hat nicht funktioniert – Khalil