自定义 UIVIew with nib 子视图 nil.



>我用一个xib文件创建了一个简单的自定义UIView,我将xib视图连接到我的类,然后将我的IBOutles链接到子视图,之后我使用initWithFrame创建视图,并以编程方式将其添加到我的父视图中

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@"AddAlarmView" owner:self options:nil];
        _scrollView = (UIScrollView *)[objects objectAtIndex:0];
        [self addSubview:_scrollView];
    }
    return self;
}

问题是所有的子视图都是零的。如果我尝试获取 customView.textFeild1,它是零....为什么?错误在哪里?

与其这样,你应该尝试从 Xib 获取你的 UIView 对象,就像这样。

- (id)initWithFrame:(CGRect)frame
{
    NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@"AddAlarmView" owner:self options:nil];
    self = (YourClassName *)[objects objectAtIndex:0];
    self.frame = frame;
    return self;
}

您无需再次添加子视图 IBOutLets。它们已经是 xib 文件中视图的子视图。只需加载该 xib 文件并将其分配给您自己并根据参数更新您的帧。

最新更新