子类化 UIView 并显示多个实例
Posted
技术标签:
【中文标题】子类化 UIView 并显示多个实例【英文标题】:Subclassing UIView and displaying multiple instances 【发布时间】:2010-12-15 17:13:41 【问题描述】:我正在尝试执行以下操作:
显示自定义UIView
的实例。这个UIView
子类应该从Interface Builder 加载它的内容,因为它显示了我不想手动创建的东西。 我的问题是:如何在 UIView
子类中从 Interface Builder 加载?
我最终会将这个视图动画化并从屏幕中释放出来。 (我知道该怎么做:-))
转到第 1 步,即创建我的 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];
【讨论】:
以上是关于子类化 UIView 并显示多个实例的主要内容,如果未能解决你的问题,请参考以下文章