我想更改所选的单元格背景颜色并将文本保留在该单元格上。然后我确实喜欢这个,它可以改变细胞颜色,但细胞上的文字会消失。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"MessageCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
cell.textLabel.text = [self.receivedData objectAtIndex:indexPath.row];
return cell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"MessageCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
UIView *bgColorView = [[UIView alloc]init];
bgColorView.backgroundColor = [UIColor colorWithRed:0.529 green:0.808 blue:0.922 alpha:0.5];
cell.selectedBackgroundView = bgColorView;
}
答案 0 :(得分:0)
您正在使用新的UIView实例替换当前视图(已包含文本的视图)(其中没有文本,但是您的新颜色)。这就是你的文字正在消失的原因。您应该更改selectedBackgroundview的背景颜色属性,如下所示:
cell.selectedBackgroundView.backgroundColor = [UIColor colorWithRed:0.529 green:0.808 blue:0.922 alpha:0.5];
虽然我认为您甚至可以放弃selectedBackgroundView
部分而只是放弃cell.backgroundColor = ...
中的didSelectRowAtIndexPath