4

我有一个 UITableViewController 我正在尝试自定义样式。我已经完成了 95% 的工作,但是无法从单元格背景中移除奇怪的阴影。我在此屏幕截图中突出显示了我要删除的内容:

普通视图

为了尝试解决这个问题,我已经转储了构成我的 UITableView 的所有视图,然后对它们进行着色以尝试找到我需要更改的视图:

样式视图

如您所见,我无法为该特定位置着色。换句话说,我找不到与该地点相关的视图。

如何从我的单元格中移除阴影?

4

1 回答 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;
}

这给出了以下内容(诚然,非常难看!)。细胞“漂浮”在此之上。

在此处输入图像描述

于 2012-05-31T17:41:56.600 回答