5

我有一个简单风格的 UITableView,它的单元格是 UITableViewCell 的子类。

在单元格子类中,我覆盖了 drawRect 以将此绘图代码放入(用于垂直分隔符):

CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(c, [[UIColor grayColor] CGColor]);
CGContextBeginPath(c);
CGContextMoveToPoint(c, self.frame.size.height + 0.5f, 0);
CGContextAddLineToPoint(c, self.frame.size.height + 0.5f, self.frame.size.height);
CGContextStrokePath(c);

效果很好。但是,我现在已将 tableview 样式更改为分组。这条线根本没有画出来。虽然设置了一个断点,但显示 drawRect 方法被调用。

我想避免子类 UIView 只是为了画一条小线,特别是因为我已经子类化了 tableview 单元格并且我只想在单元格上绘制。那么为什么代码突然停止在分组表视图上工作呢?

4

1 回答 1

10

drawRect在子类中覆盖不是一个好主意UITableViewCell。如果您不想设置自定义单元格backgroundView,那么您可以添加简单UIView的 1px 宽度。

UIView* vertLineView = [[UIView alloc] initWithFrame:CGRectMake(80, 0, 1, 44)];
vertLineView.backgroundColor = [UIColor redColor];
[self.contentView addSubview:vertLineView];
于 2012-05-12T15:07:43.323 回答