2011-02-26 119 views
2

我确定这很简单,但我无法使其工作。使用另一个nib文件的nib文件加载视图

我有一个名为的viewController包括应加载了其他几个视图的笔尖的UIViewController。其中四个视图是我的类BlockView(UIView的子类)的视图。我还为BlockView类创建了一个nib文件(通过创建一个新的nib并将它的文件所有者设置为BlockView,还有其他要做的事情吗?)。 在viewController中,我拖入四个UIViews并将其文件所有者的Class'设置为BlockView。

当我运行此我只看到四个白色方块,我把BlockViews,这是为什么?

感谢

-Michael

回答

0

简短的回答:有一个在IB不支持你想要做什么,但也有代码的解决方法,做你想做的。

一个与IB的最大问题是,名为“文件的所有者”是一个可怕的名字。仅供参考,视图永远不能成为文件的所有者。文件的所有者通常是一个ViewController。

做你想做的事,查找“加载笔尖文件使用UINib和NSNib”的文档内容。这将向您展示如何从BlockView.xib加载BlockView。

那么你将不得不在代码中使用addSubview:和帧设置为正确的位置。

如果你离开IB 4占位块,你可以简单地加载BlockViews的框架设置为求便利的占位符意见的框架。

+0

好了,太糟糕了.... – 2011-02-27 08:06:35

0

要创建一个自定义类的实例,并将其作为一个子视图添加到您的视图控制器的视图层次:

  1. 添加一个UIView到您的视图层次。
  2. 在标识检查器(⌥⌘3)中设置的“类”属性BlockView

这将创建BlockView用来实例,但当然不知道,你为它的设计BlockView.xib什么...

我的团队最近发现了一个有趣的方式来解决这个问题(嵌入笔尖在其他笔尖),我写了in our iOS developer blog。症结是在BlockView用来类中重写-awakeAfterUsingCoder:,替换从“父”笔尖装有一个从“子”笔尖(BlockView.xib)加载的对象。

+0

你的iOS开发者博客是不公开的.... – odyth 2015-06-21 20:46:12