在我的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/

10-09 16:36