我试图利用transitionFromView:toView:duration:options:completion:但在uiview类参考中,这一点使我感到困惑。这是什么意思?
此方法仅修改其视图层次结构中的视图。确实
请勿以任何方式修改应用程序的视图控制器。对于
例如,如果您使用此方法来更改由
视图控制器,您有责任更新视图
控制器适当地处理更改。
请查看示例项目https://anonfiles.com/file/521cbb41b086eae987fe27eb98278aba
在这个项目中,我只调用了transitionFromView:toView:duration:options:completion:
,并且一切正常,并且没有进行以上提到的任何操作。
最佳答案
如果我正确理解了您的发帖,您更有可能要求提供Apple文档的解释,而不是特定的问题。
不过,我会给您这个解释,希望对您有所帮助:
你写:
一切都很好。
那是因为您在这里表现不错!
根据MVC设计模式(模型-视图-控制器),您在代码中使用类UIViewController(“ C”)和UIView(“ V”)。
视图包含对象(如标签,按钮,子视图等)的视觉表示,而没有其行为的逻辑。
视图控制器提供逻辑,例如。 G。 IBAction方法和您可能实现的任何其他方法。
每个UIViewController都有其自己的“ view”属性,其中包含视图,该行为由控制器管理。此视图通常包含其他视图,例如。 G。标签,图像和按钮。它们是子视图,并存储在视图的“子视图”数组属性中。顺便说一句,每个视图都具有这样的subviews属性-也就是说,我们如何实现复杂的视图层次结构。
在您的情况下(由一个公共viewcontroller管理的多个子视图),该方法
transitionFromView:toView:duration:options:completion:
在动画的支持下隐藏“ fromView”并取消隐藏“ toView”。这是视图之间的过渡。文档中的段落将为您提供开发人员的准备,该方法仅管理视觉表示的更改,并且不为您的视图控制器提供其他“服务”以进一步管理参与的视图。
这意味着您必须管理e。 G。您自己的代码的视图状态(该视图实际上为用户提供了交互)。在我看来,您管理得很好!
在更大范围内,iOS也支持UIViewController容器-它们可以包含子视图控制器(该子视图控制器再次包含其视图及其子视图)。在这种架构中,SDK提供了另一种过渡方法,
transitionFromViewController:toViewController:duration:options:animations:completion:
这样您就可以不在两个视图之间实现过渡,而在两个视图控制器之间实现过渡。
我希望这不是太多的文字,可以帮助您使事情更清楚。
关于ios - transitionFromView:toView:duration:options:completion:confusion,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17586142/