是否可以动态着色statusBar
这是在新的苹果音乐应用程序 ?
Edit:
iOS 8.4 中的新 Apple Music 应用程序具有此功能。
- 打开应用程序。
- 选择并播放歌曲(状态栏为白色)
- 向下滑动播放器控制器以查看“我的音乐”控制器(它有黑色状态栏,也许您必须返回导航层次结构)。
- 现在只需向上/向下滑动即可查看动态状态栏变化。
Edit 2:
Apple文档似乎现在不允许我们使用它(iOS 8.4
)。将来可能会提供iOS 9
.
Edit 3:似乎不可用iOS 9
yet.
我 99.99% 确信这不能使用公共 API(轻松)完成,因为我自己尝试了几乎所有的方法(我个人也不认为这是他们状态栏的某种神奇方法,但相反,他们的应用程序能够检索状态栏视图,然后只需对其应用蒙版)。
我确信你可以做你自己的 StatusBar 并且有MTStatusBarOverlay https://github.com/myell0w/MTStatusBarOverlay库,不幸的是非常旧的库,所以我不能真正判断它是否有效,但似乎仍然有人在使用它。
但是使用库的方式,我认为可能有一个解决方案,当然需要大量工作,但可行,尽管不是“实时”。简而言之,你会这样做:
- 截取前 20 个像素的屏幕截图(状态栏)
- 从那张截图来看,去除所有非黑色的东西 https://stackoverflow.com/questions/31400299/remove-background-from-image-take-only-image-part-for-save-in-ios(您可以改进它,以便它搜索黑色边缘,这样您就可以保留绿色电池和透明度)这将使您的覆盖遮罩和假状态栏
- 覆盖状态栏:背景视图掩盖实际状态栏,以及您刚刚创建的 alpha 图像
-
对该图像应用蒙版 https://developer.apple.com/library/ios/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_images/dq_images.html,所有被遮盖的东西的颜色都会变成白色
- 根据用户滚动更改蒙版的高度
现在您应该能够正确滚动并正确更改颜色。它留下的唯一问题是状态栏不活动,但真的是这样吗?一旦你滚动出去,你会立即删除覆盖层,让它刷新。当您滚动到最顶部时,您将执行相同的操作,但在这种情况下,您将状态栏的颜色更改为白色(无动画),因此它适合您的状态。它将仅在短时间内停止运行。
希望能帮助到你!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)