我有自定义UIView,它有一个xib文件以及.h和.m文件。我的自定义视图包含许多UILabel。
我已将此视图添加到UIViewController的xib文件中,方法是拖入UIView,转到Identity Inspector并将类名更改为MyCustomView。 MyCustomView在视图控制器上连接了IBOutlet属性。
加载视图控制器时,MyCustomView的
- (id)initWithCoder:(NSCoder*)coder
调用方法,但在视图控制器的视图中没有显示任何标签。我该如何解决这个问题?
我已经知道如何使用以下代码添加自定义UIView:
NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"MyCustomView"
owner:self
options:nil];
MyCustomView *view = [nibContents objectAtIndex:0];
[self.view addSubview:view];
但我想知道如何通过xib文件添加。我已经搜索了一段时间但未能找到答案,所以如果这是重复的,请指出我正确的答案。
以下是自定义视图xib和视图控制器xib的图像:
答案 0 :(得分:1)
我担心你不能让UIViewController的xib加载你自己的视图的xib。 您需要以程序方式将这些标签添加到您自己的视图中,
或
将视图添加到viewcontroller的视图中,如代码中所示
答案 1 :(得分:0)
我需要查看更多代码才能确定,但我怀疑您遇到的问题是自定义视图(UILabels的父级)未提供UILabels维度。它没有调用 - [UIView setFrame:]
要验证,请在调试器中输入:
po [[UIApplication sharedApplication] keyWindow] recursiveDescription]
这将打印视图层次结构的描述。检查UILbals的帧是什么。