【问题标题】:Refactoring Swift UIViewPropertyAnimators out of massive view controller从海量视图控制器中重构 Swift UIViewPropertyAnimators
【发布时间】:2018-11-12 21:55:49
【问题描述】:

我正在尝试重构我现在有 >900 行(太多)的 Swift 大型视图控制器。

如何将我的UIViewPropertyAnimators(约100 行)的创建与我的主要UIViewController 分开? 问题是UIViewPropertyAnimators 需要引用view 属性和UIViews 他们正在制作动画。我是否创建一个带有weak varstruct,通过依赖注入将view 引用分配给它?我还需要以某种方式引用UIView 对象。 不确定在不产生循环的情况下重构它的最佳方法是什么。有什么想法吗?

加法

由于所有动画师只与窗口的一部分相关,我现在创建了一个子视图控制器并将动画师移动到那里。我认为这也是一个可行的解决方案。我不得不添加委托模式。最后,父视图控制器缩短了约 100 行,正如他们所说,我有“分离的关注”。

【问题讨论】:

  • 你可以为 uiview 创建扩展,我认为 UIViewPropertyAnimators 不是唯一的问题。了解 MVVM
  • 将您的UIViewPropertyAnimators 放在一个单独的文件中,然后在该文件中创建一个协议并通过定义UIViewController 类型的delegate 来访问您的view 属性

标签: swift model-view-controller refactoring uiviewpropertyanimator


【解决方案1】:

例如:

名为 PropertyAnimators 的新文件

在该文件中导入您需要的所有库。然后像这样扩展原始视图控制器:

extension UIViewControllerName: UIViewController, (any other delegates that you need) {
//PropertyAnimators code
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 2017-12-13
    • 1970-01-01
    • 2015-06-17
    相关资源
    最近更新 更多