0

我想创建我自己的控件,该控件将由几个 UILabel 和几个 UITextFields 组成。问题是我不知道从哪里开始!我是否直接继承 UIControl,然后创建我的子视图并将它们添加到 init: 中的主视图中?还是我使用 layoutSubviews?我需要覆盖drawRect:吗?

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

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

干杯!

4

1 回答 1

6

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

无论哪种情况,您都应该这样做:

  1. 创建您的子视图并在-initWithFrame:. 将它们保存在实例变量中,并将它们添加为 self 的子视图。

  2. 设置它们的框架-layoutSubviews,根据 计算它们self.bounds。这将在您的视图更改大小时调用,包括 after -initWithFrame:

-drawRect:除非您需要使用 Core Graphics 函数进行自定义绘图,否则您不需要实现。

于 2009-08-25T18:16:59.123 回答