当我点击UITableViewCell中的单元格时,单元格默认为蓝色。 我该如何改变? 改变另一种颜色或在我正在构建的这个样本中,彻底摆脱颜色。 我有一张桌子,它只是一张桌子,信息在单元格中,按下时它不会引导任何地方。只是烦恼,如果按下它会变成蓝色,因为单元格中的文字难以阅读。
答案 0 :(得分:8)
in
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
方法添加此代码
cell.selectionStyle = UITableViewCellSelectionStyleNone;
答案 1 :(得分:2)
以下可能会根据我改变uitableviewcell的选择方式。
这些是可用的默认样式。
cell.selectionStyle = UITableViewCellSelectionStyleBlue;
cell.selectionStyle = UITableViewCellSelectionStyleGray;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
但是如果你想改变风格,你也可以使用以下内容。
cell.backgroundColor = [UIColor colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha];
cell.backgroundColor = [UIColor colorWithPatternImage:(UIImage *)image];
使用第二种方法,您可以指定背景颜色或图像。
对于您想要实现的选定单元格样式,您可以使用它。
cell.selectedBackgroundView = [[[UIImageView alloc] initWithImage:(UIImage *)image] autorelease];
答案 2 :(得分:1)
更改属性selectedBackgroundView是正确且最简单的方法。我使用以下代码更改选择颜色:
//设置选择颜色
UIView *myBackView = [[UIView alloc] initWithFrame:cell.frame];
myBackView.backgroundColor = [UIColor colorWithRed:1 green:1 blue:0.75 alpha:1];
cell.selectedBackgroundView = myBackView;
[myBackView release];
或你可能会用这个..
这是我遇到解决此问题的最有效方法,使用willDisplayCell委托方法(当使用cell.textLabel.text和/或单元格时,这也会处理文本标签背景的白色。 detailTextLabel.text):
(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { ... }
当调用此委托方法时,单元格的颜色是通过单元格而不是表格视图控制的,就像使用时一样:
(UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath { ... }
因此,在单元格委托方法的主体内,将以下代码添加到单元格的替换颜色中,或者只使用函数调用使表格的所有单元格颜色相同。
if (indexPath.row % 2)
{
[cell setBackgroundColor:[UIColor colorWithRed:.8 green:.8 blue:1 alpha:1]];
}
else [cell setBackgroundColor:[UIColor clearColor]];
答案 3 :(得分:0)
使用以下代码删除单元格选择的默认颜色 :
cell.selectionStyle = UITableViewCellSelectionStyleNone;