2012-05-12 88 views
5

我有一个普通样式的UITableView,它的单元格是UITableViewCell的一个子类。在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细胞,我只是希望借助细胞。那么为什么代码突然停止在分组tableview上工作?

+0

尝试重置模拟器n清除ur prjct – Saad

回答

10

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

UIView* vertLineView = [[UIView alloc] initWithFrame:CGRectMake(80, 0, 1, 44)]; 
vertLineView.backgroundColor = [UIColor redColor]; 
[self.contentView addSubview:vertLineView]; 
+1

同意。或者你可以添加一个自定义线条图像的UIImageView到单元格。 – Joel

+1

为什么这不是一个好主意? –

+0

我想我是错了。在某些情况下,它可能是合理的覆盖'drawRect'。 – onegray