我写了drawRect如下。
-(void)drawRect:(CGRect)rect
{
[super drawRect:rect];
CGContextRef cxt = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(cxt, 2.0);
CGContextSetStrokeColorWithColor(cxt, [UIColor redColor].CGColor);
CGContextMoveToPoint(cxt, 250.0 , 0.0);
CGContextAddLineToPoint(cxt, 250.0, 50.0);
CGContextStrokePath(cxt);
}
它画红线。但是当我将背景视图设置为单元格时消失。我将视图设置如下。
UIView *view = [[UIView alloc] initWithFrame:cell.frame];
view.backgroundColor = [UIColor grayColor];
cell.backgroundView = view;
问题是什么?背景视图如何隐藏线?
请帮忙
最佳答案
我猜你在UITableViewCell
中吗?
您不应覆盖单元格本身的drawRect
。而是将绘图代码放在自定义的backgroundView
或contentView
层次结构的自定义视图中。 (取决于您的计划结果,也许backgroundView适合您)
该行不见了,因为backgroundView
是TableViewCell的子视图,因此它位于单元格本身的顶部。 (如果使用[UIColor colorWithWhite:0.0 alpha:0.5]
作为backgroundView的backgroundColor,则可以看到。)UITableViewCell上有很多视图,看起来像这样:
UITableViewCell
> BackgroundView
> (EditControl)
> ContentView
> (AccessoryView)
关于iphone - iPhone-设置背景 View 时在UITableViewCell中画一条线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16188655/