当 UIView 被隐藏时会发生啥?
Posted
技术标签:
【中文标题】当 UIView 被隐藏时会发生啥?【英文标题】:What really happens when a UIView becomes hidden?当 UIView 被隐藏时会发生什么? 【发布时间】:2012-07-18 17:17:51 【问题描述】:这听起来像是一个奇怪的问题,但当它被隐藏时究竟会发生什么。很高兴看到 UIView 源代码,但这不会发生。
这就是我想知道的原因: 我正在尝试在我的应用程序上方添加一个 UIWindow(一个透明的,用户交互启用设置为 NO)来为屏幕着色。在用户尝试使用 Apple 的 MessageUI.framework 通过 SMS 共享之前,它工作得非常好。当这种情况发生并且 MFMessageComposeViewController 或 MFMailComposeViewController 出现时,这些视图控制器将不会接收用户输入。我已经尝试了很多东西,唯一有效的方法是允许用户与视图交互,将 UIWindow(我添加的那个)设置为 0 的 alpha 或将隐藏设置为 YES。我想在不隐藏视图的情况下复制它,这就是为什么我想知道当 UIWindow(它是 UIView 的子类)被隐藏时会发生什么。
【问题讨论】:
【参考方案1】:ios 应用程序中通常只有一个窗口。您最好只使用UIView
来完成此任务,而不是使用UIWindow
。 UIWindow
为UIView
类添加了一些视图层次结构和事件管理功能。此功能会干扰您的应用程序中的预期行为。我认为如果您将此视图的类更改为UIView
而不是UIWindow
,它将起作用。
【讨论】:
在 UIView 产生相同的不需要的结果后,我切换到使用 UIWindow。 您是否使用 presentModalViewController:animated: 来显示组合视图控制器?以上是关于当 UIView 被隐藏时会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章
当UIVIew隐藏在sameView中时,如何为UIview设置动画