我想创建我自己的控件,该控件将由几个 UILabel 和几个 UITextFields 组成。问题是我不知道从哪里开始!我是否直接继承 UIControl,然后创建我的子视图并将它们添加到 init: 中的主视图中?还是我使用 layoutSubviews?我需要覆盖drawRect:吗?
我习惯于创建将处理添加子视图的“控制器”类,但是如果我将 UIControl 子类化,那么我不确定要覆盖哪些方法来进行设置!
我以前从未这样做过,所以我真的很感激一些指示!
干杯!
我想创建我自己的控件,该控件将由几个 UILabel 和几个 UITextFields 组成。问题是我不知道从哪里开始!我是否直接继承 UIControl,然后创建我的子视图并将它们添加到 init: 中的主视图中?还是我使用 layoutSubviews?我需要覆盖drawRect:吗?
我习惯于创建将处理添加子视图的“控制器”类,但是如果我将 UIControl 子类化,那么我不确定要覆盖哪些方法来进行设置!
我以前从未这样做过,所以我真的很感激一些指示!
干杯!
你确定要UIControl
吗?该类UIControl
旨在用于相当简单、通常可重用的控件,例如需要支持一组有限事件(如“触摸”或“值更改”)的按钮和文本字段。如果您只是想创建一种将多个视图组合在一起的方法,则应该UIView
改用。
无论哪种情况,您都应该这样做:
创建您的子视图并在-initWithFrame:
. 将它们保存在实例变量中,并将它们添加为 self 的子视图。
设置它们的框架-layoutSubviews
,根据 计算它们self.bounds
。这将在您的视图更改大小时调用,包括 after -initWithFrame:
。
-drawRect:
除非您需要使用 Core Graphics 函数进行自定义绘图,否则您不需要实现。