如何使用 Core graphics 更改 UITableViewCell 的背景颜色
How to change the background colour of a UITableViewCell using Core graphics
我正在关注 this tutorial 核心图形。我现在要更改 UITableViewCell
的背景颜色。根据教程我应该得到的结果是这样的:
而我得到的结果是这样的(完全红色的单元格是我在表格视图中选择的单元格):
本教程适用于 Xcode 4.6,这可能就是我没有得到预期结果的原因。这是我正在使用的代码。
自定义背景class:
CustomCellBackground.m
-(void) drawRect: (CGRect) rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
UIColor * redColor = [UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1];
CGContextSetFillColorWithColor(context, redColor.CGColor);
CGContextFillRect(context, self.bounds);
}
tableviewcontroller 中的 tableview 代码 class:
TableViewController.m
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString * CellIdentifier = @"Cell";
UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
NSString * entry;
if (![cell.backgroundView isKindOfClass:[CustomCellBackground class]]) {
cell.backgroundView = [[CustomCellBackground alloc] init];
}
if (![cell.selectedBackgroundView isKindOfClass:[CustomCellBackground class]]) {
cell.selectedBackgroundView = [[CustomCellBackground alloc] init];
}
if (indexPath.section == 0) {
entry = self.thingsToLearn[indexPath.row];
} else {
entry = self.thingsLearned[indexPath.row];
}
cell.textLabel.text = entry;
return cell;
}
请指出我做错了什么,并指出正确的方向。
提前致谢。
您可以执行此操作,将标签颜色设置为清除颜色,如下所述。
SWIFT
cell.textLabel.backgroundColor = UIColor.clearColor()
Objective C
cell.textLabel.backgroundColor = [UIColor clearColor];
我正在关注 this tutorial 核心图形。我现在要更改 UITableViewCell
的背景颜色。根据教程我应该得到的结果是这样的:
而我得到的结果是这样的(完全红色的单元格是我在表格视图中选择的单元格):
本教程适用于 Xcode 4.6,这可能就是我没有得到预期结果的原因。这是我正在使用的代码。
自定义背景class:
CustomCellBackground.m
-(void) drawRect: (CGRect) rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
UIColor * redColor = [UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1];
CGContextSetFillColorWithColor(context, redColor.CGColor);
CGContextFillRect(context, self.bounds);
}
tableviewcontroller 中的 tableview 代码 class:
TableViewController.m
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString * CellIdentifier = @"Cell";
UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
NSString * entry;
if (![cell.backgroundView isKindOfClass:[CustomCellBackground class]]) {
cell.backgroundView = [[CustomCellBackground alloc] init];
}
if (![cell.selectedBackgroundView isKindOfClass:[CustomCellBackground class]]) {
cell.selectedBackgroundView = [[CustomCellBackground alloc] init];
}
if (indexPath.section == 0) {
entry = self.thingsToLearn[indexPath.row];
} else {
entry = self.thingsLearned[indexPath.row];
}
cell.textLabel.text = entry;
return cell;
}
请指出我做错了什么,并指出正确的方向。 提前致谢。
您可以执行此操作,将标签颜色设置为清除颜色,如下所述。
SWIFT
cell.textLabel.backgroundColor = UIColor.clearColor()
Objective C
cell.textLabel.backgroundColor = [UIColor clearColor];