我正在尝试根据部分编号设置单元格背景颜色,但它不能正常工作。当我来回滚动时,单元格颜色会发生变化并出错。我正在尝试使用willDisplayHeaderView
中设置的颜色变量来执行此操作,然后在willDisplayCell
中使用。这是代码:
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section{
if(section % 2 == 0){
self.currentCellColor =[UIColor colorWithRed:(199/255.0) green:(214/255.0) blue:(156/255.0) alpha:1];
}
else{
self.currentCellColor = [UIColor colorWithRed:(242/255.0) green:(245/255.0) blue:(232/255.0) alpha:1];
}
}
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
cell.backgroundColor = self.currentCellColor;
}
此外,部分功能对于这一功能并不重要,因此如果有人在一个大部分中有更好/更简单的方法来实现这一功能,那么请随时提出建议。我只需要每4行更改一次颜色。
答案 0 :(得分:2)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"identifier"];
....
if (indexPath.section % 2) {
cell.contentView.backgroundColor = [UIColor redColor];
}
else {
cell.contentView.backgroundColor = [UIColor blueColor];
}
return cell;
}
答案 1 :(得分:0)
如果是我,我将为每个部分设置不同的单元格标识符,然后在cellForRowAtIndexPath:
中设置单元格颜色当滚动并且tableView重用您的单元格时,您可以确定它不会抓住一个那是错误的颜色。
答案 2 :(得分:0)
试试这个
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier = @"cellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
....
if(indexPath.section % 2 == 0){
self.currentCellColor =[UIColor colorWithRed:(199/255.0) green:(214/255.0) blue:(156/255.0) alpha:1];
}
else{
self.currentCellColor = [UIColor colorWithRed:(242/255.0) green:(245/255.0) blue:(232/255.0) alpha:1];
}
cell.contentView.backgroundColor = self.currentCellColor;
....
return cell;
}