1

我已经定义了一个UITableViewCell我在我的 static 中使用的自定义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)];   


}
4

2 回答 2

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:. 这样,代码仅在创建单元格时运行一次,而不是每次显示时运行。

于 2012-11-12T04:00:19.043 回答
0

仅供参考,问题在于无关的 ;cell; 你在第二行的末尾。将其更改为

- (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]];      
}
于 2012-11-12T04:03:00.843 回答