如何在tableView单元格中显示多行

时间:2010-09-23 00:15:05

标签: objective-c cocoa-touch uitableview

我有一个稍长的字符串,当在tablView单元格中显示时会被截断。我这样做是为了使表格更宽:

tableView.rowHeight = 100;

如何缩小字体以及在表格视图单元格中包装文字?

3 个答案:

答案 0 :(得分:14)

tableView:cellForRowAtIndexPath:中,您可以在textLabel(或descriptionLabel上设置一些属性,具体取决于您正在使用的单元格样式)来执行此操作。设置font以更改字体,linkBreakMode以使其自动换行,并设置numberOfLines以设置最多行数(此后它将截断。您可以将其设置为0表示否最大

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell* aCell = [tableView dequeueReusableCellWithIdentifier:kMyCellID];
    if( aCell == nil ) {
        aCell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kMyCellID] autorelease];

        aCell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:10.0];
        aCell.textLabel.lineBreakMode = NSLineBreakByWordWrapping; // Pre-iOS6 use UILineBreakModeWordWrap
        aCell.textLabel.numberOfLines = 2;  // 0 means no max.
    }

    // ... Your other cell setup stuff here

    return aCell;
}

答案 1 :(得分:2)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell* Cell = [tableView dequeueReusableCellWithIdentifier:kMyCellID];
    if( Cell == nil ) {
        Cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kMyCellID] autorelease];

       Cell.textLabel.font = [UIFont fontWithName:@"TimesNewRoman" size:10.0];
       Cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
       Cell.textLabel.numberOfLines = 2;  // 0 means no max.
    }

  // your code here

    return Cell;
}

答案 2 :(得分:0)

您应该将UITableViewCell子类化,并使其具有UITextView而不是UITextField。然后将您的子类分配给UITableView。