iOS 在 applicationWillEnterForeground 之前删除视图
Posted
技术标签:
【中文标题】iOS 在 applicationWillEnterForeground 之前删除视图【英文标题】:iOS remove view before applicationWillEnterForeground 【发布时间】:2013-10-04 07:38:09 【问题描述】:我正在 ios 7 上开发一个具有所需功能的应用程序
当我主页按钮,应用程序进入背景,我将添加一个图像到当前 UIWindow。因此,当应用程序进入后台时,如果用户在 iOS 7 上使用双主页按钮,操作系统将显示我的应用程序当前视图的小屏幕截图,以便用户可以看到我添加的图像。 :)(我做到了)
当用户通过单击应用程序图标返回我的应用程序时,我想立即删除此图像。在这种情况下,“立即”意味着用户不能再看到这个图像,当应用程序进入前台时用户只能看到他/她的当前视图。我尝试将代码删除图像放在 applicationWillEnterForeground 委托的开头,但在它消失后我仍然能够在短时间内看到该图像。
我也尝试先为此图像视图设置隐藏的 alpha 属性,然后是 removeFromSuperview,但它不起作用。任何人都可以根据我的愿望帮助我“立即”删除它。
【问题讨论】:
【参考方案1】:所有应用程序都会自动完成此操作,您无需在代码中执行任何操作。
【讨论】:
感谢@user2320456,但是当应用程序进入前台时,我仍然会在短时间内看到此图像。 :) 我认为图像不可能立即消失。即使是这样,我也更喜欢典型的 iOS 行为,用户喜欢并期待它。 嗯,也许我不得不接受,但如果您有其他想法,请不要犹豫,告诉我。 :) 谢谢【参考方案2】:我不认为你可以做得更快,这取决于设备性能。对不起,伙计。
【讨论】:
是的,这是个问题。我在 ipad mini、iOS 7 上构建,设备还不错,但我认为应用程序会先将当前视图带给用户,然后再到 applicationWillEnterForeground 执行代码。【参考方案3】:正如其他人所说,iOS 处理这些事件的方式非常棘手。我一直在研究并依赖于设备的内存状态来更快地完成它。确实,在 iPhone 4 和 4S 中可能不会显示您在applicationWillEnterForeground
方法中添加的图像。
如果我是你,我会在应用再次激活时添加该图像的平滑淡出动画来解决此问题。使用[UIView animateWithDuration: animations:]
可以做得很好! :)
如果我发现其他问题,我会在这里回答!
【讨论】:
感谢@Manuel M.,我在 ipad mini 上运行 iOS 7 并发现了这个问题。 :)以上是关于iOS 在 applicationWillEnterForeground 之前删除视图的主要内容,如果未能解决你的问题,请参考以下文章
iOS - NSInternalInconsistencyException 在 iOS 9 和 10 上发生,但在 iOS 11 上运行良好