静态UITableView中的自定义UITableViewCell

时间:2012-11-12 03:35:59

标签: objective-c ios uitableview

我已经定义了我在静态UITableViewCell中使用的自定义UITableView。我想访问我定义的变量(myTableViewImageCell等),但是从tableView:willDisplayCell开始,似乎在说“重新定义细胞类型”。

这就是我正在做的事情:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
    [cell setSelectionStyle:UITableViewCellSelectionStyleNone];

    [cell.myTableViewLabel setShadowColor:[UIColor whiteColor]];
    [cell.myTableViewLabel setShadowOffset:CGSizeMake(0.0f, 1.0f)];   


}

2 个答案:

答案 0 :(得分:2)

如果你的所有单元格都是同一个自定义类,你只需更改方法的定义来指示并摆脱你的第一行(这无论如何都是错误的):

- (void)tableView:(UITableView *)tableView willDisplayCell:(ANMyTableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    [cell setSelectionStyle:UITableViewCellSelectionStyleNone];

    [cell.myTableViewLabel setShadowColor:[UIColor whiteColor]];
    [cell.myTableViewLabel setShadowOffset:CGSizeMake(0.0f, 1.0f)];
    [cell.myTableViewLabel setTextColor:[UIColor hex666Color]];      
}

但请注意,如果您对单元格的所有做同样的事情(如此处所示),则应在cellForRowAtIndexPath:而非willDisplayCell:中执行此操作。这样,代码只在创建单元格时运行一次,而不是每次显示时都运行。

答案 1 :(得分:0)

仅供参考,问题是外来的;细胞;你有第二行的结尾。将其更改为

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
    ANMyTableViewCell *cell = (ANMyTableViewCell*)[tableView cellForRowAtIndexPath:indexPath];
    [cell setSelectionStyle:UITableViewCellSelectionStyleNone];

    [cell.myTableViewLabel setShadowColor:[UIColor whiteColor]];
    [cell.myTableViewLabel setShadowOffset:CGSizeMake(0.0f, 1.0f)];
    [cell.myTableViewLabel setTextColor:[UIColor hex666Color]];      
}