gpt4 book ai didi

ios - addChildViewController 和 addSubview 的区别?

转载 作者:技术小花猫 更新时间:2023-10-29 10:41:35 27 4
gpt4 key购买 nike

这两种方法都将 View 添加为父 View 的 subview ,并且 View 可以接收事件。什么时候使用哪一个?

最佳答案

这完全取决于您希望如何管理新的 subview 。如果您希望新的 subview 由当前 View 的 View Controller 管理(例如,您要添加一些简单的东西,例如一些 UILabel 对象),您只需调用 addSubview。另一方面,如果新的 subview 有自己的 View Controller (即它是足够复杂的 View 集合,具有丰富的功能,你想用它自己的 Controller 封装所有这些复杂性来管理这个新 subview 所做的一切)然后您调用 addChildViewController 来添加新的 View Controller ,但随后也调用了 addSubview

因此,请注意 addChildViewController 本身不会对 View 执行任何操作。您通常会立即通过添加其 View 的调用来跟随它,例如这是来自 Implementing a Custom Container View Controller 的一个稍微澄清的例子iOS View Controller 编程指南部分:

[self addChildViewController:childViewController];        // add subview's view controller
childViewController.view.frame = ... // specify where you want the new subview
[self.view addSubview:childViewController.view]; // now you can add the child view controller's view
[childViewController didMoveToParentViewController:self]; // now tell the child view controller that the adding of it and its views is all done

所以,这不是 addSubview vs addChildViewController 的问题,而是 addSubview vs addChildViewController+添加 subview 。如果您调用 addChildViewController,那么您这样做的目的是在某个时候为其 View 调用 addSubview

坦率地说,addSubviewaddChildViewController+addSubview 这个问题很少是我们思考这个问题的方式。一种更合乎逻辑的思考方式是确定这个新 View 是否有自己的 View Controller 。如果是,则执行 addChildViewController 调用序列。如果没有,您只需调用 addSubview

有关 View Controller 包含的良好介绍(例如,该 API 的基本原理、保持 View 层次结构与 View Controller 层次结构同步的重要性等),请参见 WWDC 2011 视频 Implementing UIViewController Containment .

关于ios - addChildViewController 和 addSubview 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30438847/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com