0

我已经设置了一个自定义类,它扩展了 UITableViewCell 以尝试在 IOS 应用程序中设置表格样式 - 我有以下代码 -

 - (void)setSelected:(BOOL)selected animated:(BOOL)animated
   {
   [super setSelected:selected animated:animated];

if(selected){
    [self setBackgroundColor:[UIColor colorWithRed:(255/255.0) green:(128/255.0) blue:(37/255.0) alpha:0.5]];

     self.textLabel.textColor = [UIColor whiteColor];

    }
    else{
    [self setBackgroundColor:[UIColor clearColor]];

    self.textLabel.textColor = [UIColor colorWithRed:(142/255.0) green:(141/255.0) blue:(139/255.0) alpha:1];

     }
    }

我希望选择的背景颜色是整个应用程序中使用的橙色的不透明版本 - 但我的代码结果如下所示 -

在此处输入图像描述

单元格的中心部分变成了相同颜色的深色版本!?谁能解释一下。

另外 - 作为一个额外的查询 - 是否可以将不透明的白色阴影应用于单元格的未选择版本的整个背景?

跟进 -

遵循 Maros 的建议后,我在 styledcell.M 文件中添加了以下内容 -

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{

    [super setSelected:selected animated:animated];

self.selectionStyle = UITableViewCellSelectionStyleNone;

但我仍然遇到同样的问题

4

2 回答 2

1

将 UITableViewCell 的 UITableViewCellSelectionStyle 设置为 UITableViewCellSelectionStyleNone。

在您的自定义 UITableViewCell 类中awakeFromNib或方法中添加以下行:initWithFrame:

  self.selectionStyle = UITableViewCellSelectionStyleNone;

我认为这种选择样式过度绘制了 tableview 的背景。

于 2013-10-25T10:55:42.053 回答
0

终于让它工作了——由于某种原因,文本标签继承了相同的背景颜色,因此两种不透明的颜色相互叠加产生了上述效果——

我通过 -

 self.textLabel.textColor = [UIColor whiteColor];

注意到关于这个 SO 错误的评论 -
UITableViewCell 背景颜色在单元格的左右边缘是不同的阴影

于 2013-10-25T16:00:47.807 回答