在我的xib文件中,我有一些视图。我有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
你能帮我吗?提前致谢。
最佳答案
您需要使用与initWithFrame:
中相同的初始化来实现另一个init方法
它的名字是:
- (id)initWithCoder:(NSCoder *)coder
{
...
}
initWithCoder:
是从NIB文件加载的init方法,用于调用视图。关于ios - 如何连接我的一个View与UIView类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10030818/