【问题标题】:UIView subclass with its own controller - Design pattern具有自己的控制器的 UIView 子类 - 设计模式
【发布时间】:2016-09-21 13:59:38
【问题描述】:

据我所知,要遵循 MVC 模式准则,您不应该在视图中包含控制器(即服务器请求、委托等),但是 Apple 的一些示例代码在视图中包含动画(主要是CABasicAnimation 实例,以便为其层设置动画)。

我的问题是,如果你的视图中有一些控制器逻辑违反了 MVC 设计模式,如果是这样,最好的选择是什么,例如,如果我们想要一个 UIView,它在执行时总是会动画(即反弹)一些操作,并且您不想为每个具有视图实例的UIViewController 实现该逻辑。

【问题讨论】:

    标签: ios model-view-controller uiview uiviewcontroller subclass


    【解决方案1】:

    您可以简单地创建一个包含视图动画逻辑的 UIViewController,作为视图所有者。

    之后,您可以像使用单例一样使用它,并将其视图添加到您想要的所有位置,方法是让控制器始终为视图设置动画。

    但要回答您的第一个问题,是的,如果您将控制器代码放在视图中,它会破坏模式。

    【讨论】:

    • 但是使用UIViewController 那么你需要一个容器,我想阻止它。我想你可以有一个NSObject 来代替,实现管理视图的方法,该视图是NSObject 子类的属性(私有或公共?如果公共则只读?)。
    • 多么好的容器。您可以在属性或 ivar 中处理实例。我没有看到您的问题
    猜你喜欢
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 2013-09-02
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多