TableView,如何更改单元格默认的蓝色

时间:2012-03-15 07:35:31

标签: iphone xcode uitableview

当我点击UITableViewCell中的单元格时,单元格默认为蓝色。 我该如何改变? 改变另一种颜色或在我正在构建的这个样本中,彻底摆脱颜色。 我有一张桌子,它只是一张桌子,信息在单元格中,按下时它不会引导任何地方。只是烦恼,如果按下它会变成蓝色,因为单元格中的文字难以阅读。

4 个答案:

答案 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;