2

我在情节提要上有一个 ViewController。我已经使用界面生成器在屏幕底部设置了一个工具栏。我已将自定义视图设置为覆盖 drawRect 的视图。但是,对于我的生活,我无法在从该 drawRect 调用的屏幕上显示任何内容。drawRect 本身被调用得很好,但屏幕上什么也没有。

另外,我有这个 ViewController 的方法,它使用 AVCaptureSession 将其背景切换为来自相机输入的实时视图。我曾怀疑这可能是导致错误的原因,但是在删除了 AVCaptureSession 的所有引用后,我仍然无法让它工作。

对不起我的写作和/或缺乏逻辑,我现在没有任何睡眠。

编辑:这是一个不起作用的代码的小例子。内部的每个方法都被调用,但没有显示任何内容。

- (void)drawRect:(CGRect)rect {
    [super drawRect:rect];

    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);

    // Draw them with a 2.0 stroke width so they are a bit more visible.
    CGContextSetLineWidth(context, 2.0);

    CGContextMoveToPoint(context, 0,0); //start at this point

    CGContextAddLineToPoint(context, 100, 100); //draw to this point

    // and now draw the Path!
    CGContextStrokePath(context);
}
4

1 回答 1

7

如果您UIView覆盖. 删除那个电话!众所周知,它会导致奇怪的行为。[super drawRect]UIView

根据文档

如果你直接继承 UIView,你的这个方法的实现不需要调用 super。但是,如果您要对不同的视图类进行子类化,则应在实现中的某个时刻调用 super。

于 2013-03-13T13:42:52.233 回答