【问题标题】:iOS custom status bar that only replaces carrier icon仅替换运营商图标的 iOS 自定义状态栏
【发布时间】:2012-05-16 15:51:08
【问题描述】:

我正在为 iOS 创建一个僵尸准备应用程序,我认为拥有一个类似于飞行模式的“天启模式”会很酷,因为它将状态栏载体图标替换为一个小飞机,除了可能有一个小蘑菇云什么的?

天启模式只是我的应用程序中的一个布尔标志,它禁用所有数据连接所需的功能(仅在应用程序内,不使用任何私有 API 或任何东西......)。如果可能的话,我仍然希望有时钟、电池寿命、蓝牙图标以及在正常操作期间弹出到状态栏上的任何其他内容。

我正在查看MTStatusBarOverlay 库来实现此功能。相关(Stackoverflow post here)。我知道我的应用程序可能会因此而被拒绝样式,但我的想法是我不想偏离常态并交叉手指Apple不会跳上我为它。

我的问题是

  1. 如何复制时钟和电池寿命图标?我是否需要挂钩某个事件,或者是否有可以添加的 UI 元素。
  2. 我这样做是否正确?在普通状态栏上用蘑菇云覆盖载体图标而不是完全替换状态栏会更好吗?我担心可变长度的载体图标...

当然,选项 3 是我完全忘记了这个想法,并为此模式制作了某种不同的背景或其他东西,但这似乎很蹩脚:P

【问题讨论】:

  • 我感觉如果您只想“禁用”用户的数据连接,您的应用可能不会获得批准。
  • 它只在我的应用程序中有效。我的应用程序为离线和在线工作提供服务。我想禁用我在应用中提供的在线服务,并使用一个漂亮的小图标来表示模式(仅限应用内)。

标签: objective-c ios uikit statusbar uiapplication


【解决方案1】:

不久前我尝试过类似的事情。我创建了一个接受触摸事件的状态栏覆盖,但没有阻止状态栏接收触摸,这对于应用商店的接受度至关重要。
您可以查看my question and my answer,但请记住,它可能不再是实际的了,它在 iOS4 中运行良好,但从未在 5 上测试过。不过值得一试。

至于叠加层本身,我建议将所有内容都覆盖到时钟,其余部分保持透明,它应该可以完成这项工作。

【讨论】:

  • 所以只是为了确保我理解。您制作了一个覆盖应用状态栏的透明视图?在您的应用程序中这样做的目的是什么,您是否有某种视觉覆盖?请问你的app是什么?至于做一个覆盖,我没有想到触摸方面,但我可以看到这很重要!
  • 相关示例代码在我链接的问题中。我没有更多的东西,因为我们不再做那样的事情了。当时的想法是一个非模态通知管理界面,类似于 iOS5 和 Android 正在做的事情。由于 iOS5 不再需要它,因为通知不再是模态的。我不需要任何视觉效果,只需要状态栏顶部的全长透明视图,拦截触摸,同样重要的是,传递它们。
  • 在花了一上午的时间之后,我很确定这是与创建 stackoverflow.com/questions/2833724/… 中的视图相结合的方法。但对于我的生活,我无法让视图真正出现!也许它在 iOS 5 中被阻止了?无论如何,如果我一切顺利,我会给你解决方案并稍后回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-16
  • 1970-01-01
相关资源
最近更新 更多