我似乎无法让文本真正跨越多行。高度看起来是正确的。我缺少什么?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell =  [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"StatusCell"] autorelease];

    CGRect frame = cell.contentView.bounds;
    UILabel *myLabel = [[UILabel alloc] initWithFrame:frame];
    myLabel.text = [[person.updates objectAtIndex:indexPath.row] valueForKey:@"text"];
    [cell.contentView addSubview:myLabel];

    [myLabel release];

    return cell;
}

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

    NSString *text = [[person.updates objectAtIndex:indexPath.row] valueForKey:@"text"];
    UIFont *font = [UIFont systemFontOfSize:[UIFont systemFontSize]];
    CGSize withinSize = CGSizeMake(tableView.frame.size.width, 1000);
    CGSize size = [text sizeWithFont:font constrainedToSize:withinSize lineBreakMode:UILineBreakModeWordWrap];

    return size.height + 20;    
}

另外,我缺少什么使标签看起来比表格单元格长?alt text

有帮助吗?

解决方案

Tweetero 在中提供了一个例子 MessageListController.m. 。那里的代码呈现以下屏幕:

(图片取自 可混搭).

基本实施概要:

  1. 当构建一个 UITableViewCell, ,创建并添加一个 UILabel 作为子视图,如下所示 tableviewCellWithReuseIdentifier:. 。寻找创造 TEXT_TAG 标签。

  2. 当丰富 UITableViewCell 对于视图,请确保正确设置标签格式,如中所示 configureCell:forIndexPath, ,同样寻找label标签 TEXT_TAG.

  3. 返回每个单元格的适当高度,如以下所示 tableView:heightForRowAtIndexPath.

其他提示

myLabel.numberOfLines = 2;

检查 文档 有关如何使用此属性的完整信息。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return theSizeYouWantYourCellToBe;
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top