我正在尝试将UITableViewCell中特定单元格的背景颜色设置为紫色。
到目前为止,我已经尝试了这一点,它将所有细胞的颜色设置为紫色,而不是仅设置为第一个细胞。
在cellForRowAtIndexPath
方法中:
for(int k = 0; k < queueMCDate.count; k++){
if(_qbColorArr.count == 0) {
}
else if ([[_qbColorArr objectAtIndex:k] isEqual:@"a"]) {
if(indexPath.row == k)
cell.backgroundColor = [UIColor colorWithRed:0.48 green:0.04 blue:0.41 alpha:1.0];
}
}
return cell;
}
这是一个链接,显示目前的情况。
我希望应用程序如何工作,在第一个单元格中设置返回日期后,我希望它是紫色的。通过,
为它们分配一个字符串值a
,当我设置返回日期时,我希望它能起作用。
编辑:
在cellForRowAtIndexPath
方法中:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
QueueDetails *cell = [tableView dequeueReusableCellWithIdentifier:@"reuCell" forIndexPath:indexPath];
cell.queueNo.text = fQueueNo[indexPath.row];
cell.queueeName.text = queueNameDisp[indexPath.row];
cell.bkTitle.text = queueBk[indexPath.row];
cell.dateRe.text = queueRDate[indexPath.row];
cell.dateBo.text = queueBDate[indexPath.row];
for(int k = 0; k < queueRDate.count; k++){
if(_qbColorArr.count == 0) {
cell.backgroundColor = [UIColor whiteColor];
return cell;
}
else if ([[_qbColorArr objectAtIndex:k] isEqual:@"a"]) {
if(indexPath.row == k)
cell.backgroundColor = [UIColor colorWithRed:0.48 green:0.04 blue:0.41 alpha:1.0];
return cell;
else{
cell.backgroundColor = [UIColor whiteColor];
return cell;
}
}
}
}
单元格在开始时默认为白色,但是当向单元格添加返回日期时,该单元格需要变为紫色,表示已返回书籍,而其他人保持白色。
为了更好地说明,我使用_qbColorArr
的原因是因为数组包含空格(在viewDidLoad
初始化)或a
。因此,当我将返回日期设置为第一个单元格时,我也已完成此[_qbColorArr replaceObjectAtIndex:0 withObject:@"a"]
。然后将在else if
语句中检查,并将单元格的颜色指定为紫色。
答案 0 :(得分:1)
您没有在else条件中设置默认颜色。一旦行的颜色设置为紫色,那么由于重用标识符,颜色保持不变。设置默认颜色如下: -
for(int k = 0; k < queueMCDate.count; k++){
if(_qbColorArr.count == 0) {
cell.backgroundColor = [UIColor whiteColor];//Your Default Color will go here
}
else if ([[_qbColorArr objectAtIndex:k] isEqual:@"a"]) {
if(indexPath.row == k)
cell.backgroundColor = [UIColor colorWithRed:0.48 green:0.04 blue:0.41 alpha:1.0];
else{
cell.backgroundColor = [UIColor whiteColor];//Your Default Color will go here
}
}
}
return cell;
答案 1 :(得分:0)
实际上,我真的不明白你的问题......正如你的描述中所说的那样,我会认为如果cell.dateRe.text什么都不是,那么你的细胞将是白色和紫色。
所以试一试。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
QueueDetails *cell = [tableView dequeueReusableCellWithIdentifier:@"reuCell" forIndexPath:indexPath];
cell.queueNo.text = fQueueNo[indexPath.row];
cell.queueeName.text = queueNameDisp[indexPath.row];
cell.bkTitle.text = queueBk[indexPath.row];
cell.dateRe.text = queueRDate[indexPath.row];
cell.dateBo.text = queueBDate[indexPath.row];
if (cell.dateRe.text.length > 0){
cell.backgroundColor = [UIColor colorWithRed:0.48 green:0.04 blue:0.41 alpha:1.0];
} else{
cell.backgroundColor = [UIColor whiteColor];
}
return cell;
}