我试图以最好的方式重构我的代码,我想知道给定情况的正确架构是什么。
我想做的事
我所做的非常简单:我有一些自定义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
我非常感谢您对此提出任何建议。