UITableViewCell自定义CG绘图iOS 7

时间:2013-09-19 00:06:42

标签: ios uitableview core-graphics ios7

我有一个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中如何在单元格上进行自定义绘图的答案。

2 个答案:

答案 0 :(得分:3)

尝试将背景颜色属性设置为透明色

self.backgroundColor = [UIColor clearColor]

答案 1 :(得分:2)

您必须使用drawRect创建子视图并将其放入UITableViewCell

看这里Can't draw in UITableViewCell's drawRect