2013-10-13 6 views
10

Ich habe eine Zelle mit mehrzeiligen UILabels, aber wenn die Beschriftung des Textes nicht in den Rahmen passt, werden keine Punkte angezeigt. Wie kann ich das beheben?Hinzufügen von Punkten zu UILabel, wenn Text nicht in den Rahmen passt

+2

Haben Sie wirklich ein Kopfgeld dazu hinzufügen müssen. Es gibt Hunderte von Antworten auf diese Art von Fragen. http://stackoverflow.com/questions/11302165/uilabel-linebreakmode-clip-doesnt-clip-text und https://www.google.co.uk/search?q=UILabel+lineBreakMode+&ie=utf-8&oe= utf-8 & rls = org.mozilla: de-USA: offiziell & client = firefox-a & gws_rd = cr & ei = cQiiUsPpBKTK0QXZuoHoDA einfache Google-Suche. – Popeye

+0

@Popeye Ich habe versucht, dieses Problem nach früheren Antworten zu beheben, aber es hilft mir nicht. PS: Meine Label-Eigenschaft "numberOfLines" auf "2" gesetzt, wenn es gleich "1" ist, es funktioniert. –

+0

numberOfLines ist standardmäßig 1. Versuchen Sie, es 0 festzulegen, wenn Sie die genaue AnzahlOfLines nicht kennen und die SizeToFit-Methode von UILable verwenden. – iProgrammer

Antwort

30

Haben Sie das versucht?

yourLabel.adjustsFontSizeToFitWidth = NO; 
yourLabel.lineBreakMode = NSLineBreakByTruncatingTail; 

Prior iOS6 Verwendung UILineBreakModeTailTruncation

+0

Ja, Ofc Ich habe versucht.) –

+2

Ich denke, die richtige Option ist 'NSLineBreakByTruncatingTail'. Der, den du in deiner Antwort erwähnst, ist veraltet. – Macondo2Seattle

+0

Ich habe versucht, NSLineBreakByTruncatingTail zu verwenden, nicht UILineBreakModeTailTruncation. –

2

Wenn die linebreak nicht funktioniert foryou, ist eine weitere Option zur Berechnung tatsächlich die Länge der Zeichenfolge nehmen wird und wenn es geht länger als die Etikettengröße sein , füge "..." hinzu.

Sie müssen mit dem folgenden Code spielen, für Multi-Line zu handhaben (aber die Idee ist ähnlich)

Nehmen wir zum Beispiel Sie (zum Beispiel detailLabel) beschriften

UILabel* detailLabel = cell.detailTextLabel; 
CGSize expectedDetailLabelSize = [detailLabel.text sizeWithFont:detailLabel.font 
              constrainedToSize:maximumLabelSize 
               lineBreakMode:detailLabel.lineBreakMode]; 
+0

Ich kenne diese Lösung , aber zur gleichen Zeit hoffe ich, es gibt einen einfacheren Weg.) –

3

für eine rasche 2.0 es wird

sein
yourLabel.adjustsFontSizeToFitWidth = false; 
yourLabel.lineBreakMode = NSLineBreakMode.ByTruncatingTail 
+0

in Swift 4 müssen nur 'b' klein geben. wie (yourLabel.adjustsFontSizeToFitWidth = false; yourLabel.lineBreakMode = NSLineBreakMode.byTruncatingTail) –

0

Für SWIFT 3+

label.adjustsFontSizeToFitWidth = false; 
label.lineBreakMode = NSLineBreakMode.byTruncatingTail; 
Verwandte Themen