从 Springboard 添加和删除 UIView

Posted

技术标签:

【中文标题】从 Springboard 添加和删除 UIView【英文标题】:Adding and Removing UIView From Springboard 【发布时间】:2014-01-13 03:01:20 【问题描述】:

我正在开发一个小 MS 调整,在 Springboard 上添加一个视图。我希望它不断更新,所以我把它称为

- (void)showSpringBoardStatusBar

然后我使用这个创建并添加视图:

[[UIApplication sharedApplication].keyWindow addSubview:view1];

这是正确的方法吗?

但问题是这个视图使用低 alpha 级别来保持透明,并且每次视图由 showSpringBoardstatus 栏更新时,都会在其中添加另一个 UIView,最终只是使视图变得实体。这在内存方面也是不经济的。所以然后我回去添加了我认为会删除代码的内容:

 view1 = nil;
[view1 removeFromSuperview];

但这似乎并没有什么不同,因为它仍然存在并且没有任何变化。 在过去的几天里,我一直在寻找任何可以帮助我解决此问题的方法,但一无所获。我能想到的只是我无法像从普通视图中那样从关键窗口中删除添加的子视图,或者我只是不知道如何正确地做到这一点。

任何帮助将不胜感激。谢谢。

【问题讨论】:

我无法回答整个问题,但您应该先致电[view1 removeFromSuperview];,然后再致电view1 = nil;。如果您首先按其写入方式将 view1 变量设为 nil,那么 removeFromSuperview 方法将不会执行任何操作。 【参考方案1】:

将 view1 设置为 nil 而不是调用“removeFromSuperView”可能是个坏主意。只添加一次视图,保持引用并不断更新此引用而不再次将其添加到 keyWindow 怎么样?

【讨论】:

以上是关于从 Springboard 添加和删除 UIView的主要内容,如果未能解决你的问题,请参考以下文章

用于删除UICollectionViewCells的类似Springboard的动画

从 Springboard 启动应用程序显着延迟

从 Springboard 返回后导致通用跳过的 AudioUnits

iOS - 从 Springboard 中隐藏应用程序图标

EKEventStore 导致 SpringBoard 崩溃

没有 Springboard 的 iOS:由于没有系统事件服务器而终止