使用IB / Xcode 4.5.1和iOS Simulator 6.0定制UIView方法

时间:2013-03-04 05:48:37

标签: ios uiview ios6

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

我希望有一个自定义的UIView,它有一个nib但是无法正确获取hooked up。我已经花了几个小时调试和关闭,所以我去(也许坐在浴缸里)。如果您觉得这是一个简单的操作,请提前道歉;提前帮忙。

目前要做到这一点,我:

  1. 创建自定义视图文件:文件 - >新 - >档案 - > Objective-C Class并选择UIView类型并将其命名为MyView;创建了MyView.h和MyView.m
  2. 创建自定义视图笔尖:文件 - >新 - >档案 - >用户界面 - >查看并命名为“酷”; cool.xib已创建
  3. 在IB for cool.xib中,进入Identity Inspector并从UIView设置自定义类 - >我的看法;问题#1 - 此时MyView知道在实例化时加载cool.xib还是需要做更多的事情?
  4. 此外,在IB中,我突出显示文件的所有者并将其自定义类设置为MyView。 (? - 不确定)
  5. 我想创建一个文本标签,所以我将UILabel拖到cool.xib上并在MyView.h中创建一个公共属性(myLabel)。问题#2我是否需要将此自定义类设置为MyView?我想不会因为这只是一个标准的UILabel。
  6. 我有一个单视图应用程序,我想在它上面有一个MyView / cool实例,所以在IB中,我将一个View从对象检查器拖到ViewController.xib视图。在IB Identity Inspector中,我将类设置为MyView。我将MyView.h文件导入ViewController.h并在界面中为它设置属性。
  7. 在ViewController.m的viewDidLoad中,我将背景颜色设置为橙色并设置myLabel(由Xcode填充,因此它似乎有点工作)。
  8. 我运行应用程序并将backgroundColor设置为橙色但没有标签,并且为什么不这样做?以上任何步骤都不正确吗?

    事先提前

1 个答案:

答案 0 :(得分:1)

  

在IB for cool.xib中,进入Identity Inspector并设置Custom   来自UIView的课程 - >我的看法;问题#1 - 此时是MyView   知道在实例化时加载cool.xib或者需要更多   做什么?

它知道您的XIB由该类管理。但是需要做更多的事情,以便你使用它。

略过第四个问题。这适用于UIViewController,您可以使用文件所有者来定义谁将对其负责。

  

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

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

最后选中此项,以便正确加载自定义视图=> Loading custom UIView from nib, all subviews contained in nib are nil?