无法弄清楚从哪里开始子类化UIControl!

时间:2009-08-25 17:46:29

标签: iphone uikit subclassing uicontrol

我想创建自己的控件,它包含几个UILabel和几个UITextField。问题是我不知道从哪里开始!我是否直接将UIControl子类化,然后创建我的子视图并将它们添加到init中的主视图中?或者我使用layoutSubviews?我需要覆盖drawRect:?

我习惯于创建“Controller”类来处理添加子视图但是如果我将UIControl子类化,那么我不确定要覆盖哪些方法进行设置!

我以前从未这样做过,所以我真的很感激一些指示!

干杯!

1 个答案:

答案 0 :(得分:6)

您确定要UIControl吗? UIControl类用于非常简单,通常可重用的控件,如按钮和文本字段,需要支持一组有限的事件(如“触摸”或“值已更改”)。如果您只想创建一种将多个视图组合在一起的方法,则应使用UIView代替。

在任何一种情况下,这都是你应该做的:

  1. 创建子视图并在-initWithFrame:中设置其大部分属性。将它们保存在实例变量中,并将它们添加为self的子视图。

  2. -layoutSubviews中设置框架,并根据self.bounds进行计算。每当您的视图更改大小时,系统都会调用此方法,包括在-initWithFrame:之后。

  3. 除非您需要使用Core Graphics功能进行自定义绘图,否则您不需要实现-drawRect: