【发布时间】:2018-11-12 21:55:49
【问题描述】:
我正在尝试重构我现在有 >900 行(太多)的 Swift 大型视图控制器。
如何将我的UIViewPropertyAnimators(约100 行)的创建与我的主要UIViewController 分开?
问题是UIViewPropertyAnimators 需要引用view 属性和UIViews 他们正在制作动画。我是否创建一个带有weak var 的struct,通过依赖注入将view 引用分配给它?我还需要以某种方式引用UIView 对象。
不确定在不产生循环的情况下重构它的最佳方法是什么。有什么想法吗?
加法:
由于所有动画师只与窗口的一部分相关,我现在创建了一个子视图控制器并将动画师移动到那里。我认为这也是一个可行的解决方案。我不得不添加委托模式。最后,父视图控制器缩短了约 100 行,正如他们所说,我有“分离的关注”。
【问题讨论】:
-
你可以为 uiview 创建扩展,我认为 UIViewPropertyAnimators 不是唯一的问题。了解 MVVM
-
将您的
UIViewPropertyAnimators放在一个单独的文件中,然后在该文件中创建一个协议并通过定义UIViewController类型的delegate来访问您的view属性
标签: swift model-view-controller refactoring uiviewpropertyanimator