我写了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。而是将绘图代码放在自定义的backgroundViewcontentView层次结构的自定义视图中。 (取决于您的计划结果,也许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/

10-10 17:50