【发布时间】:2009-06-07 01:09:56
【问题描述】:
我创建了一个自定义 UIView,我想在我的 iPhone 应用程序中的多个不同视图控制器上使用它。目前,我已经从第一个视图控制器的 nib 文件中复制了包含控件的 UIView,将其粘贴到其他视图控制器中,然后将所有操作连接到每个视图控制器。这工作正常,但不是我想使用此自定义视图的最佳方式。
我的自定义视图相当简单,它由一些带有标签的 UIButtons 组成,点击这些按钮会触发更改我的视图控制器视图上控件内容的操作。
合并此 UIView 的定义和使用的策略是什么?理想情况下,我只想从视图控制器的 nib 中引用此自定义视图,并让我的视图控制器响应来自此自定义视图的操作。
编辑:好的,根据 J.Biard 的建议,我尝试了以下方法,但运气不佳。
我创建了另一个基于 UIView 的 nib 文件,其中包含可重用视图和 UIView 子类 .m 和 .h 文件的内容(现在只是一些 UIButton 对象),然后将 nib File's Owner 类设置为我新创建的类名。
然后,我添加了 J.Biard 的大部分代码(我将 rect 更改为 50,50,100,100,暂时省略了 setDelegate,因为我现在只是想让它在视觉上工作,我发现在应用启动时显示的第一个视图控制器的 viewDidLoad 方法结束时,[self.view addSubview:view] 比 [self addSubView:view] 工作得更好。
我现在得到的是我的主视图,其中有一个黑色方块。我是否错过了某个地方的插座,或者 UIView 子类中的 initWithFrame 或 drawRect 是否需要一些初始化?
【问题讨论】:
标签: iphone cocoa-touch