我正在繪製自定義單元格,以實現我想要的某種外觀。但是,我想根據單元格是否選擇來執行不同的繪圖。我真的不只是想要默認的顏色。自定義單元格選中
我改變內容的看法背景色在這個方法的觀點:
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
然而,它只是沒有正確顯示,主要是它沒有考慮到附帶,只是有色,直到輔助指標。有沒有更好的方法來實現這一點?
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
// Background
CGContextSetFillColorWithColor(context, CELL_BACKGROUND_COLOR);
CGContextMoveToPoint(context, 0.0f, 0.0f);
CGContextAddLineToPoint(context, rect.size.width, 0.0f);
CGContextAddLineToPoint(context, rect.size.width, rect.size.height);
CGContextAddLineToPoint(context, 0.0f, rect.size.height);
CGContextClosePath(context);
CGContextFillPath(context);
// Top line
CGContextSetStrokeColorWithColor(context, CELL_TOP_LINE_COLOR);
CGContextSetLineWidth(context, CELL_LINE_WIDTH);
CGContextSetLineCap(context, kCGLineCapSquare);
CGContextMoveToPoint(context, 0.0f, 0.0f);
CGContextAddLineToPoint(context, rect.size.width, 0.0f);
CGContextStrokePath(context);
//Bottom line
CGContextSetStrokeColorWithColor(context, CELL_BOTTOM_LINE_COLOR);
CGContextSetLineWidth(context, CELL_LINE_WIDTH);
CGContextSetLineCap(context, kCGLineCapSquare);
CGContextMoveToPoint(context, 0.0f, rect.size.height);
CGContextAddLineToPoint(context, rect.size.width, rect.size.height);
CGContextStrokePath(context);
}
我想那不過,當我切換屏幕時,電池將改變相同的顏色,我想不出一個有效的方式來處理這個 – Vikings
你嘗試通過強制選定單元格的重新劃分任何機會 - 可能在你選擇的單元格上有一個setNeedsDisplay。只是一個建議。 – tiguero
是的,這種方法的問題是當你選擇一個單元格時,你將手指放在你選擇的位置,但是單元格不會突出顯示,直到你讓手指離開屏幕,不確定是否有方法 – Vikings