我想创建一个具有不同行高的UITableView,并且我试图通过在UITableViewCells内部创建UILabels来实现这一点。

到目前为止,这是我的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *MyIdentifier = @"EntryCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease];
    }

    UILabel *textView = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 300, 40)];
    textView.numberOfLines = 0;
    textView.text = [entries objectAtIndex:[indexPath row]];
    [cell.contentView addSubview:textView];
    [textView release];

    return cell;
}

这使我每个单元格有两行文本。但是,每个“条目”都有不同的行数,我希望UITableViewCells自动调整大小,并根据需要包装文本,而无需更改字体大小。
[textView sizeToFit]和/或[cell sizeToFit]似乎不起作用。

这是我希望UITableView看起来的样子:
----------------
Lorem ipsum
----------------
Lorem ipsum
Lorem ipsum
----------------
Lorem ipsum
Lorem ipsum
Lorem ipsum
----------------
Lorem ipsum
----------------
Lorem ipsum
Lorem ipsum
----------------

有人知道如何正确执行此操作吗?

谢谢。

最佳答案

UITableViewDelegate定义了一个可选方法heightForRowAtIndexPath,它将使您入门。然后,您需要使用sizeWithFont。

这里有一些关于您的确切问题的讨论:

http://www.v2ex.com/2008/09/18/how-to-make-uitableviewcell-have-variable-height/

this thread中也讨论了文本大小调整

关于iphone - 带有 subview 的可变UITableCell View 高度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/128012/

10-11 08:22