分组 UITableView 自定义绘制单元格,而不更改背景颜色?
Posted
技术标签:
【中文标题】分组 UITableView 自定义绘制单元格,而不更改背景颜色?【英文标题】:Grouped UITableView custom draw cell, without changing background color? 【发布时间】:2012-05-14 18:10:45 【问题描述】:我在分组单元格中自定义绘制表格单元格。如何获得正确的背景颜色?
我实际上在单元格内有一个视图,并且正在自定义如何在其drawRect:
中绘制该视图。
我试过这个:
- (void)drawRect:(CGRect)rect
BOOL isHighlighted = self.highlighted;
CGRect frame = self.bounds;
CGContextRef c = UIGraphicsGetCurrentContext();
if ( !isHighlighted )
[[UIColor whiteColor] set];
CGContextFillRect( c, frame );
// rest of drawing
这适用于普通表视图,但它不适合分组表视图。它看起来像 96% 的灰色。
看起来像这样:
如果您的屏幕没有很好地校准,您可能看不到差异。但它就在那里。
当我尝试这个时:
if ( !isHighlighted )
//[[UIColor whiteColor] set];
//CGContextFillRect( c, frame );
我得到了一个黑色的背景,像这样:
我的假设是我需要在我的绘图例程中填充每个像素。
当我尝试这个时:
if ( !isHighlighted )
[[self backgroundColor] set];
CGContextFillRect( c, frame );
我也得到黑色背景。我认为我认为backgroundColor
是transparentColor
。
我也试过这个:
if ( !isHighlighted )
CGContextFillRect( c, frame );
同一个黑盒子。
如何在不使用吸管并将[UIColor colorWithWhite: alpha:]
硬编码到我的应用程序的情况下匹配分组表格视图的背景颜色?
【问题讨论】:
【参考方案1】:获取其超级视图的背景颜色
UIColor * background = [self.superview backgroundColor];
我认为在自定义绘制矩形顶部调用 [super drawRect:rect];
可以解决此问题
【讨论】:
我不得不去两个superviews,但这种方法对我有用。【参考方案2】:你试过了吗?
[[UIColor clearColor] set];
【讨论】:
以上是关于分组 UITableView 自定义绘制单元格,而不更改背景颜色?的主要内容,如果未能解决你的问题,请参考以下文章
使用图像设置 backgroundView 时缺少分组的 UITableView 的单元格分隔符
UITableView 中的自定义绘图在 5 个单元格后失败
自定义 UITableView 单元格中的 UILabel 未随核心数据更改而更新
iPhone-如何将 Storyboard 与自定义 UITableView 单元格和 CellWithIdentifier 一起使用