Ios UIView子类及其自己的控制器设计模式
据我所知,为了遵循MVC模式的指导原则,视图中不应该有控制器(即服务器请求、代理等),但是Apple的一些示例代码在视图中有动画(主要是Ios UIView子类及其自己的控制器设计模式,ios,model-view-controller,uiview,uiviewcontroller,subclass,Ios,Model View Controller,Uiview,Uiviewcontroller,Subclass,据我所知,为了遵循MVC模式的指导原则,视图中不应该有控制器(即服务器请求、代理等),但是Apple的一些示例代码在视图中有动画(主要是cabasicanition实例,以便为其层设置动画) 我的问题是,视图中的某些控制器逻辑是否违反了MVC设计模式,如果是,那么最好的替代方案是什么,例如,如果我们想要一个UIView,它在执行某些操作时总是会动画化(即反弹),您不希望为每个具有视图实例的UIViewController实现该逻辑。您只需创建一个包含视图动画逻辑的UIViewController
cabasicanition
实例,以便为其层设置动画)
我的问题是,视图中的某些控制器逻辑是否违反了MVC设计模式,如果是,那么最好的替代方案是什么,例如,如果我们想要一个
UIView
,它在执行某些操作时总是会动画化(即反弹),您不希望为每个具有视图实例的UIViewController
实现该逻辑。您只需创建一个包含视图动画逻辑的UIViewController,即视图所有者
在此之后,您可以像使用单体一样使用它,并通过让控制器始终设置视图动画,将其视图添加到您想要的所有位置
但是要回答第一个问题,是的,如果将控制器代码放入视图中,它会破坏模式。您只需创建一个UIViewController,其中包含视图的动画逻辑,即视图所有者 在此之后,您可以像使用单体一样使用它,并通过让控制器始终设置视图动画,将其视图添加到您想要的所有位置
但是要回答您的第一个问题,是的,如果您将控制器代码放入视图中,它会破坏模式。但是使用
UIViewController
则需要一个容器,我想防止这种情况发生。我想你可以用一个NSObject
来代替,实现管理视图的方法,该视图是NSObject
子类的属性(私有还是公共?如果是公共的,则为只读)。多么大的容器啊。您可以在属性或ivar中处理实例。。我看不出您的问题,但是使用UIViewController
,您需要一个容器,我想防止出现这种情况。我想你可以用一个NSObject
来代替,实现管理视图的方法,该视图是NSObject
子类的属性(私有还是公共?如果是公共的,则为只读)。多么大的容器啊。您可以在属性或ivar中处理实例。。我看不出你有什么问题