Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIView子类及其自己的控制器设计模式_Ios_Model View Controller_Uiview_Uiviewcontroller_Subclass - Fatal编程技术网

Ios UIView子类及其自己的控制器设计模式

Ios UIView子类及其自己的控制器设计模式,ios,model-view-controller,uiview,uiviewcontroller,subclass,Ios,Model View Controller,Uiview,Uiviewcontroller,Subclass,据我所知,为了遵循MVC模式的指导原则,视图中不应该有控制器(即服务器请求、代理等),但是Apple的一些示例代码在视图中有动画(主要是cabasicanition实例,以便为其层设置动画) 我的问题是,视图中的某些控制器逻辑是否违反了MVC设计模式,如果是,那么最好的替代方案是什么,例如,如果我们想要一个UIView,它在执行某些操作时总是会动画化(即反弹),您不希望为每个具有视图实例的UIViewController实现该逻辑。您只需创建一个包含视图动画逻辑的UIViewController

据我所知,为了遵循MVC模式的指导原则,视图中不应该有控制器(即服务器请求、代理等),但是Apple的一些示例代码在视图中有动画(主要是
cabasicanition
实例,以便为其层设置动画)


我的问题是,视图中的某些控制器逻辑是否违反了MVC设计模式,如果是,那么最好的替代方案是什么,例如,如果我们想要一个
UIView
,它在执行某些操作时总是会动画化(即反弹),您不希望为每个具有视图实例的
UIViewController
实现该逻辑。

您只需创建一个包含视图动画逻辑的UIViewController,即视图所有者

在此之后,您可以像使用单体一样使用它,并通过让控制器始终设置视图动画,将其视图添加到您想要的所有位置


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

您只需创建一个UIViewController,其中包含视图的动画逻辑,即视图所有者

在此之后,您可以像使用单体一样使用它,并通过让控制器始终设置视图动画,将其视图添加到您想要的所有位置


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

但是使用
UIViewController
则需要一个容器,我想防止这种情况发生。我想你可以用一个
NSObject
来代替,实现管理视图的方法,该视图是
NSObject
子类的属性(私有还是公共?如果是公共的,则为只读)。多么大的容器啊。您可以在属性或ivar中处理实例。。我看不出您的问题,但是使用
UIViewController
,您需要一个容器,我想防止出现这种情况。我想你可以用一个
NSObject
来代替,实现管理视图的方法,该视图是
NSObject
子类的属性(私有还是公共?如果是公共的,则为只读)。多么大的容器啊。您可以在属性或ivar中处理实例。。我看不出你有什么问题