ios - 从 View 过渡 :toView:duration:options:completion: confusion

标签 ios objective-c uiview uiviewcontroller

我正在尝试利用transitionFromView:toView:duration:options:completion:但是在uiview类引用中这一点让我感到困惑。这意味着什么?

This method modifies the views in their view hierarchy only. It does not modify your application’s view controllers in any way. For example, if you use this method to change the root view displayed by a view controller, it is your responsibility to update the view controller appropriately to handle the change.

请查看示例项目https://anonfiles.com/file/521cbb41b086eae987fe27eb98278aba

在这个项目中,我刚刚调用了 transitionFromView:toView:duration:options:completion: ,一切都工作正常,并且没有执行上面提到的任何操作。

最佳答案

如果我正确理解您的帖子,您更有可能要求对 Apple 文档进行解释,而不是提出具体问题。

尽管如此,我还是会给你这个解释,希望对你有所帮助:

你写:

Everything is working fine..

那就是,因为你在这里表现得很好!

根据MVC设计模式(模型- View - Controller ),您在代码中使用UIViewController(“C”)和UIView(“V”)类。

View 包含对象的视觉表示(如标签、按钮、 subview 等),但没有其行为逻辑。

View Controller 提供逻辑,例如。 G。 IBAction 方法以及您可能实现的任何其他方法。

每个 UIViewController 都有自己的“view”属性,其中包含 View , Controller 管理其行为。该 View 通常包含附加 View ,例如。 G。标签、图像和按钮。它们是 subview ,存储在 View 的“subviews”数组属性中。顺便说一句,每个 View 都有这样一个 subview 属性——也就是说,我们如何实现复杂的 View 层次结构。

在您的情况下(由一个公共(public) View Controller 管理的多个 subview ),该方法

transitionFromView:toView:duration:options:completion:

在动画的支持下隐藏“fromView”并取消隐藏“toView”。这是 View 之间的过渡。文档中的段落将使您作为开发人员做好准备,该方法仅管理视觉表示的更改,并且不会为您的 View Controller 提供额外的“服务”以进一步管理参与 View 。

这意味着,您必须管理 e。 G。您自己的代码的 View 状态(哪个 View 实际上为用户提供交互)。 在我看来,你做得很好!

在更广泛的范围内,iOS 也支持 UIViewController 容器 - 它们可以包含 subview Controller (再次包含其 View 及其 subview )。在这样的架构中,还有另一种来自SDK的过渡方法,

transitionFromViewController:toViewController:duration:options:animations:completion:

它允许您不是在两个 View 之间实现转换,而是在两个 View Controller 之间实现

我希望这不是太多文字,并且有助于让您更清楚地了解事情。

关于ios - 从 View 过渡 :toView:duration:options:completion: confusion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17586142/

相关文章:

ios - 在 Metal 中如何清除深度缓冲区或模板缓冲区?

ios - 如何检查 UISegmentedControl 特定段是否已启用?

iphone 应用程序 webview 链接操作

ios - 是否可以实现双向分页UIScrollView?

ios - 多个 UIView 的动画与 UIBezierPath

ios - 计算多个数组的最终值 - swift

ios - PJSIP 应用程序无法在锁定的手机(iOS8+)上在后台注册

ios - 滑动手势不改变 UITableViewCell

objective-c - Objective C : Version of JSON library I'm compiling in present in another library I'm linking in via . a,如何解决冲突?

iphone - 按类型和国家/地区从Appstore获取所有应用