我有一个UITableViewCell
子类,具有以下drawRect:
实现。它将在单元格的底部绘制一条线,缩进30个点以匹配我们的设计。 tableView.separatorStyle
设置为UITableViewSeparatorStyleNone
代替此自定义绘图。
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
if (!_hideBottomLine) {
CGContextRef ref = UIGraphicsGetCurrentContext();
CGContextSetShouldAntialias(ref, NO);
CGContextSetStrokeColorWithColor(ref, [UIColor colorWithWhite:0.75 alpha:1].CGColor);
CGContextSetLineWidth(ref, 1);
CGContextMoveToPoint(ref, 30, CGRectGetMaxY(rect));
CGContextAddLineToPoint(ref, CGRectGetMaxX(rect), CGRectGetMaxY(rect));
CGContextStrokePath(ref);
}
}
当使用iOS 6 SDK构建时,这在iOS 6和iOS 7上都很有效。现在,我正在使用iOS 7 SDK进行构建,但该行不会出现。
我是否错过了iOS 7 SDK中CG绘图的一些变化?
修改
所以我现在意识到使用cell.separatorInset
在iOS 7中有更好的方法可以做到这一点,我还发现了一些其他类似的CG代码。所以我认为这个问题与在drawRect:
UITableViewCell
是分开的
我仍然喜欢在iOS 7中如何在单元格上进行自定义绘图的答案。
答案 0 :(得分:3)
尝试将背景颜色属性设置为透明色
self.backgroundColor = [UIColor clearColor]
答案 1 :(得分:2)
您必须使用drawRect创建子视图并将其放入UITableViewCell