自定义UIView如何与IB / Xcode 4.5.1和iOS模拟器6.0

我知道有几个类似的问题,但是我发现其中大部分都不适用于当前的IB / iOS或者不完整。

我想有一个自定义UIView有一个笔尖,但没有得到正确的hooked up 。 我花了几个小时的时间进行debugging,所以我去了(也许坐在浴缸里)。 如果您觉得这是一个简单的操作,请事先道歉; thx提前任何帮助。

为了做到这一点,我:

  1. 创build自定义视图文件:文件 – >新build – >文件 – > Objective-C类,并selectUIView的types,并命名为MyView; MyView.h和MyView.m被创build
  2. 创build自定义视图笔尖:文件 – >新build – >文件 – >用户界面 – >查看并命名为“酷”; cool.xib被创build
  3. 在用于cool.xib的IB中,进入Identity Inspector并从UIView – > MyView设置自定义类; 问题1 – 此时,MyView是否知道在实例化时加载cool.xib,还是需要做更多的事情?
  4. 此外,在IB中,我突出显示文件的所有者并将其自定义类设置为MyView。 (? – 不知道这个)
  5. 我想创build一个文本标签,所以我拖出一个UILabel到cool.xib并在MyView.h中创build一个公共属性(myLabel)。 问题2我需要为MyView设置这个自定义类吗? 我不认为这只是一个标准的UILabel。
  6. 我有一个单一视图应用程序,我想有一个MyView /酷的实例,所以,在IB中,我拖动一个视图从对象检查器到ViewController.xib视图。 在IB Identity Inspector中,我将该类设置为MyView。 我将MyView.h文件导入到ViewController.h中,并在界面中为它设置一个属性。
  7. 在ViewController.m的viewDidLoad中,我将背景颜色设置为橙色,并设置了myLabel(这是由Xcode填充,所以它似乎有点工作)。

我运行的应用程序和backgroundColor被设置为橙色,但没有标签,为什么不是混淆? 上述步骤是否有误?

thx提前

在用于cool.xib的IB中,进入Identity Inspector并从UIView – > MyView设置自定义类; 问题1 – 此时,MyView是否知道在实例化时加载cool.xib,还是需要做更多的事情?

它知道你的XIB是由那个类pipe理的。 但是还需要做更多的事情,才能使用它。

跳过第四个问题。 这将工作的UIViewController ,在那里你定义谁将负责它,文件的所有者。

我想创build一个文本标签,所以我拖出一个UILabel到cool.xib并在MyView.h中创build一个公共属性(myLabel)。 问题2我需要为MyView设置这个自定义类吗? 我不认为这只是一个标准的UILabel。

如果你希望能够从你的MyView访问这个UILabel,你应该在你的MyView创build一个IBOutlet,然后从根UIView(这是MyView的子类)链接到UILabel 。 在这种情况下,您不要触摸文件的所有者。

最后检查一下,以便正确加载你的自定义视图=> 从nib加载自定义的UIView,包含在nib中的所有子视图都是nil?