>我用一个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 文件并将其分配给您自己并根据参数更新您的帧。