【问题标题】:UITableViewCell background colorUITableViewCell 背景颜色
【发布时间】:2012-06-05 22:48:14
【问题描述】:

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

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

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

如何去除单元格中的阴影?

【问题讨论】:

  • 你在里面放了 something 自定义,因为它是深红色的图案。该图案是渐变吗,并且渐变在每个部分都重新开始?另一部分顶部两个单元格的边缘是否也不正确?你追求的最终效果是什么?
  • @jrturton 该页面上唯一自定义的是背景。我在initWithNibName 中使用以下代码设置:self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"GC_TestWeight-red-background.jpg"]];
  • 那张图片是渐变图案还是一致的阴影?
  • 我追求的最终效果是位于分组单元格后面的背景图像。
  • 你试过这些解决方案了吗stackoverflow.com/questions/400965/…

标签: iphone ios uitableview


【解决方案1】:

表格视图正在重新启动每个部分后面的渐变,因为它只是采用您给它的颜色。

相反,使用表格视图的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 真棒。工作得很好。非常感谢您对此的帮助!
猜你喜欢
  • 1970-01-01
  • 2014-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-13
  • 1970-01-01
  • 1970-01-01
  • 2015-11-01
相关资源
最近更新 更多