在我的xib文件中,我有一些View。我有PainView类(UIView)。在身份检查器中,我为此视图设置了PaintView
,并设置了@property (strong, nonatomic) IBOutlet PaintView *paintView;
它工作正常,直到我决定改变绘制方法。 我从这个file复制了代码并粘贴在PaintView.m中(与PaintView.h相同)。
但它只有在我写
时才有效[self.view addSubview:[[PaintView alloc] initWithFrame:self.view.bounds]];
但它会在所有其他图层,按钮等上创建新图层。我需要将此类与现有View连接。
我尝试了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
你能帮助我吗?提前谢谢。
答案 0 :(得分:1)
您需要使用与initWithFrame:
中相同的初始化实现另一个init方法
它的名字是:
- (id)initWithCoder:(NSCoder *)coder
{
...
}
initWithCoder:
是从NIB文件加载的init方法,用于视图。