0

在我的 xib 文件中,我有一些视图。我有 PainView 类(UIView)。PaintView在我为此视图设置的身份检查器中,并制作了@property (strong, nonatomic) IBOutlet PaintView *paintView;

它工作正常,直到我决定改变绘图方法。我从该文件中复制代码并粘贴到 PaintView.m(与 PaintView.h 相同)。

但它只有在我写的时候才有效

[self.view addSubview:[[PaintView alloc] initWithFrame:self.view.bounds]];

但它在所有其他层、按钮等上创建了新层。我需要将这个类与现有视图连接起来。

我试过paintView = [[PaintView alloc] initWithFrame:self.view.bounds];了,但没有用。

在控制台中它总是说无效的上下文:

<Error>: CGContextSaveGState: invalid context 0x0
<Error>: CGContextGetBaseCTM: invalid context 0x0
<Error>: CGContextConcatCTM: invalid context 0x0
<Error>: CGContextSetBaseCTM: invalid context 0x0
<Error>: CGContextSetBaseCTM: invalid context 0x0

你能帮我吗?提前致谢。

4

1 回答 1

1

您需要实现另一个初始化方法,其初始化与initWithFrame: 它的名称相同:

- (id)initWithCoder:(NSCoder *)coder 
{
  ...
}

initWithCoder:是从 NIB 文件加载的 init 方法,为视图调用。

于 2012-04-05T15:18:52.320 回答