我有一个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中,使用iOS 6 SDK构建时,这个方法非常好用,并且在iOS 7上也很好用。现在我正在使用iOS 7 SDK构建,但是这个方法不起作用了。
我是否错过了iOS 7 SDK中CG绘图的一些更改?
编辑:
所以我现在意识到,在iOS 7中有更好的方法可以使用cell.separatorInset,我还发现了一些其他类似的CG代码,它们可以正常工作。因此,我认为问题仅限于在UITableViewCell上实现drawRect:。
但是,我仍然想知道如何在iOS 7中对单元格进行自定义绘制。