0

我原来的问题 id在这里

其实我需要更多地澄清这个问题。

考虑以下场景:

我的项目中有三个类。说 A、B 和 C。

这 3 个类有一些共同的方法。所以我创建了另一个类(比如 D),我在其中添加了那些常用方法。

现在 D 类是父类,A、B 和 C 类是子类。也就是说,A、B 和 C 类继承了 D 的属性。

我为每个子类设置了三个 UIButton。每个子类中的每个按钮都有一些动作。但是按钮的颜色、框架、图像等属性在所有三个类中都是相同的。

所以,我需要为每个子类中的按钮做以下事情:

  • 初始化按钮
  • 分配它们
  • 设置框架
  • 设置颜色
  • 设置动作(使用[button addTarget:self action:@selector(touchUpInsideAction:) forControlEvents:UIControlEventTouchUpInside]
  • ETC

除“设置动作”外,所有子类(A、B 和 C 类)中的一切都相同

现在我的问题是,我可以在 D 类(父类)中创建按钮、它的属性和操作吗?我可以touchUpInsideAction:在每个子类(A、B 和 C 类)中编写操作方法的 () 实现吗?

这样,我可以减少我在项目中的重复代码。这里我将从touchUpInsideAction:父类调用子类的方法。

这是正确的方法还是我应该分别为每个类编写按钮创建和属性?

提前致谢

4

2 回答 2

1

在 Class D 中创建一个类方法。在该方法中设置所有按钮属性。从子类调用类方法说 A。类方法将返回 UIButton 类型的对象。分配选择器,然后将该对象添加到视图中。

于 2011-11-04T13:09:21.570 回答
0

正如我的理解 D 类应该有设置所有公共属性和操作方法的按钮。如果您希望每个类具有不同的功能,则 Child 类应该负责处理 Action。

假设您已将目标自我和选择器添加到晚餐类的按钮。您已经创建了 A、B 或 C 的对象。晚餐类 (D) 中按钮的目标是 self。Self 是对象的表示因此 self 将引用 A 类或 B 或 c 类的对象。

于 2011-11-04T10:57:54.560 回答