从XIB创建的UITableViewCell不显示内容

时间:2015-03-26 04:29:01

标签: ios objective-c uitableview

我已从UITableVIewCell文件创建了XIB。但是,它并没有显示在应用程序上。

这是我的代码:

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

    [self.tablev registerClass:[MCell class] forCellReuseIdentifier:@"c"];

     MCell *cell = (MCell*)[tableView dequeueReusableCellWithIdentifier:@"c"];

    if (cell == nil)

    {

        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MCell" owner:self options:nil];

        cell = (MCell *)[nib objectAtIndex:0];

    }

    cell.la.text=@"This is from custom cell";

    //cell.textLabel.text=@"from label";

    return cell;

文本This is from custom cell没有显示。但是,cell.textLabel.text=@"from label";会被完美地执行并显示文本。我认为我的UITableViewCell尚未在代码中初始化。有人可以看一下吗?

2 个答案:

答案 0 :(得分:0)

你必须把这个方法

[self.tablev registerNib:[UINib nibWithNibName:@"MCell"
               bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"c"];
如果您在viewDidLoad: XIB文件中使用tableView,或者初始化您的其他属性和变量的任何初始化方法,请在awakeFromNib:UIView

并在您的tableView:cellForRowAtIndexPath:方法中,执行以下操作

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

     MCell *cell = (MCell*)[tableView dequeueReusableCellWithIdentifier:@"c"];

    cell.la.text=@"This is from custom cell";
    //cell.textLabel.text=@"from label";
    return cell;
}

答案 1 :(得分:0)

您可能需要注册您的nib文件:

[self.tableView registerNib:[UINib nibWithNibName:@"MCell"
                bundle:[NSBundle mainBundle]]
                forCellReuseIdentifier:@"c"];