【发布时间】:2012-06-19 12:16:49
【问题描述】:
我有两种不同的方式在我的应用中表示数据:通过UITableView 或UIScrollView。
所以我有 2 个主要课程:AppTableView: UITableView 和 AppScrollView: UIScrollView。
我想对两个视图实现相同的添加。所以我写了两个类:SomeAdditionsTableView: UITableView 和SomeAdditionsScrollView: UIScrollView。这个类的代码是一样的。
主类现在看起来像AppTableView: SomeAdditionsTableView 和 AppScrollView: SomeAdditionsScrollView。
如何避免此代码重复?提前致谢。
【问题讨论】:
-
这两门课你都有什么?
-
如果对您有帮助,您可以只制作一个 SomeAdditionsScrollView:UIScrollView 并删除 SomeAdditionsTableView: UITableView,因为 UITableView 是 UIScrollView。然后你可以使用 SomeAdditionsScrollView 作为 AppTableView 和 AppScrollView 的超类
-
@AdrianAncuta 我不相信这会奏效。如果子类化 UIScrollView (SomeAdditionsScrollView:UIScrollView) UITableView 仍将直接继承 UIScrollView 并且不会获得 SomeAdditionsScrollView 的好处。如果 AppTableView 子类 SomeAdditionsScrollView 它将不再是一个 tableView。
-
@Aaron Hayman 你是完全正确的。然后它应该尝试制作 SomeAdditionsScrollView:UITableView。这样一来,两者都将成为他们所需要的。
-
@Adrian Ancuta,感谢您的回答。但是,如果我使用 SomeAdditionsScrollView 作为 AppTableView 的超类,我将无法在 AppTableView 中使用 UITableView 属性和方法(separatorStyle、separatorColor 等)。
标签: objective-c ios oop