2016-04-01 19 views
0

Ich bin auf diesem einen ernsthaft verloren.UILabel zeigt nicht alles an

Hier ist der Schuss:

enter image description here

Der Preis auf Tea Tee Matcha ... abgeschnitten wird. Ich kann einfach nicht herausfinden warum.

I boundingRectWithSize bin mit: ...

Wenn ich log die Höhe des Rahmens des Labels nach layoutIfNeeded Aufruf, es ist die Höhe, die es für den jeweiligen Rahmen sein sollte: die gleiche Höhe wie boundingRect.size. Höhe.

Auch wenn ich den Text des Etiketts protokollieren, ist der Preis im Protokoll, so ist es auch nicht.

Es ist nur das und ein paar andere Etiketten von Hunderten, die dieses Problem haben und ich weiß nicht warum.

Dies ist mein Code, um die Höhe des Etiketts für die Einstellung:

CGRect boundingRect = [self.nameLabel.attributedText boundingRectWithSize:CGSizeMake(self.frame.size.width, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin context:nil]; 

self.nameLabelHeightConstraint.constant = ceil(boundingRect.size.height); 
[self layoutIfNeeded]; 

Eine Sache, die ich bemerkt habe - wenn stattdessen die Höhe mit boundingRect der Berechnung und Einstellung manuell ich sizeToFit auf dem Etikett verwenden, ist es hat das selbe Problem, aber wenn ich über die Reihe und zurück zu ihr scrolle, ist es örtlich festgelegt und der Preis erscheint darunter.

Wer weiß, wtf geht hier vor?

+0

haben Sie sizeToFit versucht? –

+0

hast du meine Frage gelesen? Ich sagte bereits, ich habe es versucht Wenn ich sizeToFit verwende, behebt es das Problem zunächst nicht, aber wenn ich an der störenden Zeile vorbei blolle und zurück blättere, ist es dann behoben. –

+0

Kannst du mehr Code zeigen? Verwendest du dies in einer Kollektionsansicht? –

Antwort

0

Ich fand, dass ich in der Lage war, das Problem zu beheben, indem ich die Standardhöheneinschränkungskonstante änderte. Ich habe es deutlich verkleinert (es war groß genug, dass es den unteren Rand der Cell.xib-Ansicht berührte. Ich machte es näher an der darüber liegenden Ansicht um 1 Pixel, senkte die Standardhöhenbeschränkungskonstante in IB und änderte den Typ von equals zu mehr als oder gleich. Diese Dinge kombiniert (Ich bin mir nicht sicher, ob nicht alle es getan) scheint das Problem zu beheben.