480 Stimmen

Mehrere Textzeilen in UILabel

Gibt es eine Möglichkeit, mehrere Textzeilen in UILabel wie in der UITextView oder sollte ich stattdessen die zweite verwenden?

19voto

Wenn Sie die:

myLabel.numberOfLines = 0;

Eigenschaft können Sie auch einen Standard-Zeilenumbruch verwenden ("\n") im Code, um eine neue Zeile zu erzwingen.

16voto

prajul Punkte 1196

Sie können verwenden \r um zur nächsten Zeile zu gelangen, während Sie die UILabel mit NSString .

UILabel * label;

label.text = [NSString stringWithFormat:@"%@ \r %@",@"first line",@"seconcd line"];

16voto

user40910 Punkte 680

Versuchen wir dies

textLabel.lineBreakMode = NSLineBreakModeWordWrap; // UILineBreakModeWordWrap deprecated     
textLabel.numberOfLines = 0;

13voto

bartolo-otrit Punkte 2200
textLabel.lineBreakMode = UILineBreakModeWordWrap;
textLabel.numberOfLines = 0;

Die obige Lösung funktioniert in meinem Fall nicht. Ich mache das so:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // ...

    CGSize size = [str sizeWithFont:[UIFont fontWithName:@"Georgia-Bold" size:18.0] constrainedToSize:CGSizeMake(240.0, 480.0) lineBreakMode:UILineBreakModeWordWrap];
    return size.height + 20;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil)
    {
        // ...
        cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
        cell.textLabel.numberOfLines = 0;
        cell.textLabel.font = [UIFont fontWithName:@"Georgia-Bold" size:18.0];
    }

    // ...

    UILabel *textLabel = [cell textLabel];
    CGSize size = [text sizeWithFont:[UIFont fontWithName:@"Georgia-Bold" size:18.0]
                                        constrainedToSize:CGSizeMake(240.0, 480.0)
                                            lineBreakMode:UILineBreakModeWordWrap];

    cell.textLabel.frame = CGRectMake(0, 0, size.width + 20, size.height + 20);

    //...
}

12voto

Krunal Punkte 73316

Mauersegler 3
Legen Sie die Anzahl der Zeilen auf Null fest, um dynamische Textinformationen zu erhalten, die für variierenden Text nützlich sind.

var label = UILabel()
let stringValue = "A label\nwith\nmultiline text."
label.text = stringValue
label.numberOfLines = 0
label.lineBreakMode = .byTruncatingTail // or .byWrappingWord
label.minimumScaleFactor = 0.8 . // It is not required but nice to have a minimum scale factor to fit text into label frame

enter image description here

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X