2 Stimmen

UITableViewCell erweitern, wenn der Text den Platz überschreitet

Ich habe eine UITableViewCell und es ist UITableViewCellStyleDefault . Wenn ich versuche, einen Text einzugeben, der länger als die UITableViewCell wird sie abgeschnitten. Wie kann ich die Zelle so erweitern, dass sie diesen Text aufnehmen kann?

2voto

Jason G Punkte 51

Ich habe noch nicht versucht, genau das zu tun, was Sie versuchen, aber es würde wahrscheinlich in etwa so ablaufen:

Sie müssen die Größe einer Ansicht in Abhängigkeit von der Länge der darin enthaltenen Textzeichenfolge ändern.

Der Delegat der Tabellensicht (Ihr View-Controller) sollte Folgendes implementieren

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    Message *msg = (Message *)[messages objectAtIndex:indexPath.row];
    CGSize size = [[msg text] sizeWithFont:[UIFont fontWithName:@"Helvetica" size:kLabelFontSize]
                         constrainedToSize:CGSizeMake(220.0f, 480.0f)
                             lineBreakMode:UILineBreakModeTailTruncation];
    CGFloat minHeight = 20.0f;
    CGFloat height = size.height > minHeight ? size.height : minHeight;
    return height;
}

die der Ansicht mitteilt, wie hoch die einzelnen Reihen sein sollen.

Sie müssen auch die Größe des Rahmens der UITableViewCell-Beschriftung auf ähnliche Weise anpassen.

1voto

Mihir Mehta Punkte 13572

Sie können

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
    }

    CGRect contentRect = CGRectMake(80.0, 0.0, 240, 40);
    UILabel *textView = [[UILabel alloc] initWithFrame:contentRect];

    textView.text = mytext;
    textView.numberOfLines = 2;
    textView.textColor = [UIColor grayColor];
    textView.font = [UIFont systemFontOfSize:12];
        [cell.contentView addSubview:textView];
    [textView release];

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