4

我有一个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 绘图的一些变化吗?

编辑:

所以我现在意识到在 iOS 7 中使用 有更好的方法来做到这一点cell.separatorInset,我还发现了我编写的其他一些类似的 CG 代码。所以我认为这个问题是孤立drawRect:UITableViewCell

不过,我仍然想知道如何在 iOS 7 中的单元格上进行自定义绘图。

4

2 回答 2

3

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

self.backgroundColor = [UIColor clearColor]
于 2013-09-26T12:28:55.993 回答
2

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

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

于 2013-09-26T12:19:11.033 回答