gpt4 book ai didi

ios - Snapchat更新状态栏iOS7更新

转载 作者:可可西里 更新时间:2023-11-01 03:26:39 26 4
gpt4 key购买 nike

在最新的 snapchat 更新中,当您“向右滑动消息”时,状态栏会以一种渐变方式从黑色变为白色。

http://imgur.com/osJI20u

他们如何在不使用私有(private) API 或使用私有(private) API 的情况下做到这一点?

我调查过的内容:

乍一看,我认为他们只是在做其他人所做的事情,(就像 rdio 目前所做的那样)通过屏幕捕获整个屏幕,然后修改/动画化该屏幕截图。

但是...您无法从该屏幕捕获方法访问 UIImage 或为其设置动画,因此尽管您可以移动/裁剪该屏幕截图,但您无法更改其外观。

所以...我测试了它,当状态栏处于该状态(半黑/半白)时,它仍然是实时的,因为它不是屏幕截图,它会响应充电变化/信号变化等,据我所知,如果不使用私有(private) API,这是不可能的。

最佳答案

这让我很好奇,所以我试了一下这个应用程序,并在越狱设备上使用 Spark Inspector 检查了应用程序的 View 层次结构,我发现了一些东西。

您关于他们不使用屏幕截图的说法是错误的。您导航离开的一侧的状态栏是一个快照,不会改变。一分钟过去后,您可以很容易地看到这一点,您正在过渡到的 View 的新状态栏将发生变化,因为它是真实的,但旧状态栏不会,因为它是快照。这使得错觉很容易解决。

这是在高层发生的事情:

  1. 当您开始转换时,该应用会拍摄状态栏的快照(很可能它实际上拍摄了整个 UIScreen 的快照并简单地从中裁剪掉状态栏) 处于其当前状态,并将包含该快照的窗口附加到过渡 View 的顶部,锚定到最终过渡位置并被“来自” View Controller 的 View 屏蔽。此窗口似乎在 UIWindowLevelStatusBar 之上有一个 windowLevel,因此它能够覆盖真实的状态栏。

  2. 然后,“to” View Controller 接管实际状态栏并将其更改为“light content”状态。这呈现了一个巧妙的错觉,即单个状态栏随着过渡边框改变颜色,但真正的状态栏实际上总是位于快照窗口下方,并且如果不是因为快照窗口位于,则在过渡开始时确实会立即可见在它上面。

关于ios - Snapchat更新状态栏iOS7更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23588047/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com