使用 IB 从视图控制器的视图中加载带有 XIB 的自定义 UIView

2024-02-22

我有一个习惯UIView (MyCustomUIView)这是使用 Interface Builder 构建的。我想将此自定义视图放置在MyViewController的视图,也是使用IB设计的。我已经放置了一个UIView作为子视图MyViewController的 XIB 并将其类别设置为MyCustomUIView。问题是,当我运行代码时,只出现一个空白视图。 (当我实例化MyCustomUIView在代码中,它显示得很好。)

我只是覆盖initWithFrame:方法如下MyCustomUIView.m:

- (id)initWithFrame:(CGRect)frame
{
    [[NSBundle mainBundle] loadNibNamed:@"MyCustomUIView" owner:self options:nil];
    self = self.view;
    return self;
}

我应该怎么做才能正确加载视图?应该怎样initWithCoder:看起来像?


你是对的。 IB 使用 initWithCoder。 initWithCoder 应该看起来与其他 init 方法非常相似:

- (id)initWithCoder:(NSCoder *)aDecoder {
    self = [super initWithCoder:aDecoder];
    if (self) {
        // CUSTOM INITIALIZATION HERE
    }
    return self;
}

一旦你在 IB 中分配了你的类,你就不需要从包中实例化它,除非我误解了你的意图。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 IB 从视图控制器的视图中加载带有 XIB 的自定义 UIView 的相关文章

随机推荐