UITableViewCell背景颜色

4
我有一个UITableViewController,我正试图自定义其样式。我已经完成了95%,但是无法删除单元格背景中的奇怪遮蔽。我在此屏幕截图中突出显示了我要删除的内容: Normal View 为了解决这个问题,我卸载了构成UITableView的所有视图,然后对它们进行了着色以尝试找到需要更改的视图: Styled View 如您所见,我无法对那个特定位置进行着色。换句话说,我找不到与该位置相关联的视图。
如何从我的单元格中移除该遮蔽?

你在里面放置了某些自定义内容,因为它是一个深红色的模式。那个模式是一个渐变吗?而且在每个部分中都重新开始?还在另一部分的前两个单元格的边缘不正确吗?你最终想要什么效果? - jrturton
@jrturton 那个页面上唯一定制的东西就是背景。我在 initWithNibName 中使用以下代码设置背景:self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"GC_TestWeight-red-background.jpg"]]; - Gavin Miller
那个图像是渐变图案还是一致的阴影? - jrturton
我想要的最终效果是一个位于分组单元格后面的背景图像。 - Gavin Miller
你尝试过这些解决方案吗?https://dev59.com/FHRC5IYBdhLWcg3wJNcN - Dilip Rajkumar
1个回答

3
表格视图正在重新启动每个部分后面的渐变色,因为它只是使用您提供的颜色。相反,请使用表格视图的backgroundView属性 - 使用您的图像创建一个图像视图,并将其设置为背景视图,或者创建一个UIView并将其背景颜色设置为您上面所做的那样。您需要删除任何设置背景颜色的代码,并确保您的节标题视图具有清晰的背景或对比背景。作为一个简单的演示,我已经创建了一个组合表视图,将其背景颜色设置为透明,并在表视图控制器的viewDidLoad中添加了以下代码:
- (void)viewDidLoad
{
    [super viewDidLoad];

    UIView *backgroundView = [[UIView alloc] initWithFrame:self.tableView.bounds];
    CAGradientLayer *layer = [CAGradientLayer layer];
    layer.colors = [NSArray arrayWithObjects:(id)[UIColor redColor].CGColor,(id)[UIColor whiteColor].CGColor, nil];
    layer.frame = backgroundView.frame;
    [backgroundView.layer addSublayer:layer];
    self.tableView.backgroundView = backgroundView;
}

这会产生以下内容(虽然有些难看!)。这些单元格“浮动”在其上方。

输入图片描述


@jrturon 太棒了。非常有效。非常感谢您在此方面的帮助! - Gavin Miller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接