我试图以最好的方式重构我的代码,我想知道给定情况的正确架构是什么。
我想做的事
我所做的非常简单:我有一些自定义CALayer
子类,它们代表一个交互式 UI 元素。由于 UI 的某些部分是静态的,因此它们被分解为多个层,因此我不想不必要地重绘那些静态元素。现在,这些层作为子层添加到一个CustomView
类的初始化部分,该类是UIView
.
目前没有对应CustomViewController
的类是的子类,UIViewController
因为当我使用 时CustomView
,它包含在UITableViewCell
泛型的一个或一部分中,其中UIViewController
包含其他视图,所以我觉得UIViewController
每个CustomView
实例的另一个是多余的。
同样重要的是,我在类中所做的唯一操作UIView
是响应触摸事件并将触摸信息发送到子层,以便 UI 可以相应地更新其外观。我没有覆盖该drawRect
方法或类似的东西。
问题
基本上,我试图弄清楚我是否应该:
选项1:
摆脱CustomView
类,创建一个CustomViewController
作为 的子类的类UIViewController
,然后简单地将CALayer
对象添加为CustomViewController
的内置view
属性的子层。
或者
选项 2:
我认为UIViewController
子类是多余的是正确的,所以我应该保留它的方式,并有一个包含对象的CustomView
类。CALayer
我非常感谢您对此提出任何建议。