2012-05-12 90 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