2

我有一个UITableViewCell,它是UITableViewCellStyleDefault。当我尝试放置比 更长的文本时UITableViewCell,它会截断它。如何使单元格扩展以容纳此文本?

4

3 回答 3

2

我没有尝试完全按照您的要求做,但它可能会是这样的:

您需要根据其中文本字符串的长度更改视图的大小。

表视图委托(您的视图控制器)应该实现

- (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;
}

它告诉视图使每一行有多高。

您还需要类似地调整 UITableViewCell 标签框架的大小。

于 2010-10-13T03:29:02.877 回答
1

你不能扩大单元格的宽度超过 iphone 的屏幕......你可以做的是 1> 缩小字体 2> 让你的文本多行

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];
于 2010-03-27T07:06:33.937 回答
0

我认为所有单元格都需要具有相同的高度和宽度。UITableViewCells您可以使用该tableView's rowHeight属性更改高度。

例如,如果您子类化UITableViewController

self.tableView.rowHeight = 100;

另一种选择是添加自定义UILabel作为单元格 contentView 的子视图,如前所示。

于 2010-03-27T07:14:40.247 回答