我最近在一个项目上工作,高级工程师创建了一个自定义标签栏。他完全删除了传统的标签栏,并将其替换为自己的标签栏。查看代码,我可以看到他创建了文件HOFooterBar.h,HOFooterBar.m和HOFooterBar.xib。在.xib文件中,他在界面构建器中绘制了页脚应该看起来的样子。他继承了UIView类。在.h文件中,他为类创建了一个协议,以便可以从视图中给出的操作中获取命令。在主视图控制器上,他只是添加了它所属的UIView,并在身份检查器中将类更改为HOFooterBar。
这就是我能看到的,但我试图在我自己的代码中重现结果并且它无法正常工作。 UIView我添加到我的视图控制器只显示白色。有一次,我手动将UIView添加到我的代码中(没有IB)并且它有效。但我需要能够从界面构建器添加它。任何想法如何实现这一点,以及为什么它不适合我?如果我不够清楚,我会接受更多问题
答案 0 :(得分:3)
要使用.xib创建视图,我们可以使用以下步骤
UINib *nib = [UINib nibWithNibName:@"YourCustomView" bundle:nil];
YourCustomView *view = [[nib instantiateWithOwner:self options:nil] objectAtIndex:0];
[self.view addSubview:view];
Here是同一参考问题
答案 1 :(得分:0)
因此,一旦您编写了自定义视图(确保它继承自UIView
)
您可以转到主xib,并在右下角确保选择了对象(多维数据集),并搜索自定义视图。从那里,您可以将该自定义视图拖动到主视图中 - 然后在身份检查器中将该自定义视图指定为自定义视图类的实例。
如果以编程方式创建自定义视图的内容(这听起来像是高级工程师朋友在其标题/实现文件中所做的那样),那么自定义视图将在xib中显示为空,并且在运行时自定义视图将填充以编程方式提供给它的内容。