【问题标题】:Subclassing UIView and displaying multiple instances子类化 UIView 并显示多个实例
【发布时间】:2010-12-15 17:13:41
【问题描述】:

我正在尝试执行以下操作:

  1. 显示自定义UIView 的实例。这个UIView 子类应该从Interface Builder 加载它的内容,因为它显示了我不想手动创建的东西。 我的问题是:如何在 UIView 子类中从 Interface Builder 加载?

  2. 我最终会将这个视图动画化并从屏幕中释放出来。 (我知道该怎么做:-))

  3. 转到第 1 步,即创建我的 UIView 的新实例并显示它。

可能是一个愚蠢的问题,但我似乎无法弄清楚。我会很感激一些帮助,法比安

【问题讨论】:

    标签: iphone objective-c uiview


    【解决方案1】:

    在 iOS 4.0+ 中,创建一个引用您的 nib 文件 (+nibWithNibName:bundle:) 的 UINib 实例,然后使用 -[UINib instantiateWithOwner:options:] 实例化 nib 中的对象。

    如果您也需要以 iOS 3.x 为目标,请致电:

    [[NSBundle mainBundle] loadNibNamed:owner:options:]
    

    返回 nib 文件中的对象数组。

    【讨论】:

    • 我已经使用了这种方法,但是我没有成功地使圆角视图的角变得透明。我的 NIB 加载的自定义 UIView 是带角的矩形,而不是圆角矩形。有什么建议吗?
    • 一个与另一个有什么关系?
    【解决方案2】:

    要从 Interface Builder 加载界面,您需要使用 UIViewController。如果你不使用界面生成器,你可以创建一个 uiview 子类,创建你的界面,然后创建你的类的实例。对于每一堂课,您需要做的就是:

    MyView *view = [[MYView alloc] initWithFrame:theFrame];
    MyView *secondView = [[MyView alloc] initWithFrame:theFrame];
    //do stuff with the views
    //release the views
    [view release];
    [secondView release];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-08
      相关资源
      最近更新 更多