给 UIWindow 添加 subview 有啥坏处?
Posted
技术标签:
【中文标题】给 UIWindow 添加 subview 有啥坏处?【英文标题】:What are the disadvantages of adding subview to UIWindow?给 UIWindow 添加 subview 有什么坏处? 【发布时间】:2017-02-20 10:41:09 【问题描述】:我是 ios 开发新手,实际上我想将 UICollectionView 添加到所有内容的顶部。所以,为此我将它添加到 UIWindow,基本上我想知道将 UICollectionView 添加到 UIWindow 有什么缺点。如果是的话,有没有办法将任何对象添加到所有内容的顶部? 谢谢。
【问题讨论】:
为什么要将它添加到 UIWindow 上,您可以将 collectionView 放在 UIViewController 中并放在视图层次结构的顶部。 我想要整个应用中的集合视图。 除非您需要设备旋转,否则没有缺点。 无法理解您的观点。如果集合是视图,那么用户将如何与其他功能进行交互?如果不涉及其他功能,那为什么不把collectionview放在viewcontroller本身呢? 您可以选择使用bringSubviewToFront
方法,每次您希望collectionview 位于其他所有内容之上。
【参考方案1】:
通常 UIWindow 的想法是持有 1 个 rootViewController 而不是玩太多,只在需要获取主视图的情况下使用它。
这样做的正确方法是拥有 1 个主 NavigationController 并用您想要的任何类型的顶视图(即侧菜单、各种叠加层等)覆盖它,这样它总是可以从子控制器访问并且您可以在 UIViewController 中使用所有相关的委托方法对其进行完整处理。
【讨论】:
【参考方案2】:除了这通常被认为是不好的做法,UIKit
应该为您提供一种替代方法来避免这种用法,我能想到的最大问题是视图直接添加到UIWindow
做不响应设备方向更改(旋转)事件,并且不会随 UI 的其余部分一起旋转。
【讨论】:
键盘有自己的窗口。模态框过去也有自己的窗口。以上是关于给 UIWindow 添加 subview 有啥坏处?的主要内容,如果未能解决你的问题,请参考以下文章
将 UIImage 传递给 SubView 的 UIImageView?