Ich muss die Grundlinien von Text in UILabels ausrichten. Was ich gerade mache, ist, dass ich die Grundlinien von UILabels, die den Text enthalten, ausrichtend, und wenn die Textschriftgröße in zwei Beschriftungen unterschiedlich ist, führt dies zu einer ausgerichteten UILabels-Grundlinie aber falsch ausgerichteten Textgrundlinie (falsch ausgerichtet, aber immer noch verstellt). Die Beschriftungen sind in einer benutzerdefinierten UIView-Unterklasse enthalten, daher bezieht sich self
auf die umfassende UIView.Wie können Sie die Grundlinien von Text in UILabels mit verschiedenen Schriftgrößen auf iOS ausrichten?
hier ist der entsprechende Code
[self.mySmallLabel sizeToFit];
[self.myBigLabel sizeToFit];
self.mySmallLabel.frame = CGRectMake(0,
self.bounds.size.height - self.mySmallLabel.bounds.size.height,
self.mySmallLabel.bounds.size.width,
self.mySmallLabel.bounds.size.height);
self.myBigLabel.frame = CGRectMake(self.mySmallLabel.frame.origin.x + self.mySmallLabel.bounds.size.width,
self.bounds.size.height - self.myBigLabel.bounds.size.height,
self.myBigLabel.bounds.size.width,
self.myBigLabel.bounds.size.height);
[self.mySmallLabel sizeToFit];
[self.myBigLabel sizeToFit];
Dieser Code führt zur aligment im Bild unten verlinkt sind.
Wie Sie sehen können, auch wenn die UILabel Basislinien ausgerichtet sind, ist die Grundlinien des Textes durch einen kleinen Rand versetzt. Wie kann ich die Grundlinien von Text dynamisch ausrichten (weil sich die Schriftgrößen zur Laufzeit ändern können)?
Jede Version, die automatisches Layout verwendet? – adib
Die Auto-Layout-Version ist einfach: Richten Sie einfach zwei Labels nach 'NSLayoutAttributeBaseline' (oder' NSLayoutAttributeLastBaseline' oder 'NSLayoutAttributeFirstBaseline' aus, je nachdem, was Sie anstreben). –