设置行高时不显示自定义UITableViewCell

时间:2010-06-08 00:08:16

标签: iphone objective-c cocoa-touch uitableview

我有一个我在IB中创建的自定义UITableViewCell。当我没有超越时,我的标签显示:

- (CGFloat)tableView:(UITableView *)tblView heightForRowAtIndexPath:(NSIndexPath *)indexPath
然而,我的内容被压扁了。我希望高度为120px所以我有以下内容:

- (CGFloat)tableView:(UITableView *)tblView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{   CGFloat rowHeight = 120;
    return rowHeight;
}

我不确定为什么我的UITableViewCell里面的内容突然消失了?

更新: 以下是我创建单元格的方法:

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

    static NSString *MyIdentifier = @"ARCell";
    ARObject *myARObject;
    myARObject = [items objectAtIndex:indexPath.row];

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
    if (cell == nil) {
        [[NSBundle mainBundle] loadNibNamed:@"ARCell" owner:self options:nil];
        cell = arCell;
        self.arCell = nil;
    }

    UILabel *label;
    label = (UILabel *)[cell viewWithTag:0];
    label.text = [NSString stringWithFormat:@"%@", myARObject.username];

    label = (UILabel *)[cell viewWithTag:1];
    label.text = [NSString stringWithFormat:@"%@", myARObject.created_at];

    label = (UILabel *)[cell viewWithTag:2];
    label.text = [NSString stringWithFormat:@"%@", myARObject.articleTitle];

    label = (UILabel *)[cell viewWithTag:3];
    label.text = [NSString stringWithFormat:@"%@", myARObject.intro_text];

    return cell;
}

2 个答案:

答案 0 :(得分:0)

在IB中你是否也设置了视图大小的高度?

如果是这样,你可以尝试返回120而不是将其声明为CGFloat

编辑:另一个想法,确保你保存在IB ...这是显示错误的主要原因!

答案 1 :(得分:0)

我认为你如何为tableview单元加载nib有一些可疑之处。而不是将cellview连接到文件所有者的插座,为什么不尝试类似的东西:

NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"ARCell" owner:self options:nil];
        cell = (UITableViewCell *)[nib objectAtIndex:0];

至少我建议您调试并在该行上设置断点以验证

  1. 细胞确实存在
  2. 该单元格包含您期望的子视图
  3. 细胞具有正确的框架和 tableview单元格的边界