TableView不会输入willDisplayCell

时间:2012-04-23 14:54:29

标签: iphone objective-c ios tableview

我的目标是定义我自己的细胞样式,背景,字体和大小。我试试这个。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    ScreenListElements *currentScreenElement = [self.screenDefBuild.elementsToTableView objectAtIndex:indexPath.row];

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:currentScreenElement.objectName];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:currentScreenElement.objectName];

    }

    cell.textLabel.text = currentScreenElement.objectName;

    return cell;
}

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{  
cell.contentView.backgroundColor = [UIColor blackColor];
}

我想更改单元格背景,但我的应用程序不会进入willDisplayCell方法。我宣布我的班级为:

@interface MyTableView : UIViewController  <UITableViewDataSource,NSCopying> {
}

我还有别的吗?或许是一种更好的方式来宣告自己的细胞风格。

3 个答案:

答案 0 :(得分:5)

@interface MyTableView : UIViewController  <UITableViewDataSource, UITableViewDelegate ,NSCopying> {
}

方法

tableView:willDisplayCell:forRowAtIndexPath

UITableView

的委托方法

已编辑(使其正确并接受答案)

设置委托

[myTableView setDelegate:self];

答案 1 :(得分:0)

好的,我看到,你没有实现“UITableViewDelegate”协议,只有dataSource ... 所以它肯定不会输入委托方法。

确保它是这样的:

@interface MyTableView : UIViewController  <UITableViewDataSource, UITableViewDelegate ,NSCopying> {
}

答案 2 :(得分:0)

检查UITableviewCell代表协议:

- (void)tableView:(UITableView *)tableView 
        willDisplayCell:(UITableViewCell *)cell 
        forRowAtIndexPath:(NSIndexPath *)indexPath{  

    cell.contentView.backgroundColor = [UIColor blackColor];

}