他们如何在不使用私有API的情况下执行此操作,或者他们是否使用私有API?
我调查了什么:
乍一看,我认为他们正在做其他人所做的事情(就像rdio目前所做的那样),通过屏幕捕获整个屏幕,然后修改/动画那个屏幕截图.
但是……您无法从该屏幕捕获方法访问或动画UIImage,因此尽管您可以移动/裁剪该屏幕截图,但您无法更改其外观.
所以…我测试了它,当状态栏处于该状态(半黑/半白)时,它仍然是LIVE,因为它不是截图,它响应充电变化/信号变化等,我不知道如果不使用私有API就不可能.
解决方法
你不使用截图是不正确的.您正在导航的一侧的状态栏是快照,不会更改.一分钟过后,您可以很容易地看到这一点,您正在转换的视图的新状态栏将会更改,因为它是真实的,但旧的不会因为它是快照.这使得幻觉很容易解决.
以下是高层次的情况:
>当您开始转换时,应用程序会在当前状态下拍摄状态栏的快照(很可能是实际拍摄整个UIScreen的快照并简单地从其中裁剪状态栏)并附加包含该快照的窗口到过渡视图的顶部,锚定到最终过渡位置,并由“从”视图控制器的视图屏蔽.此窗口似乎在UIWindowLevelStatusBar上方有一个windowLevel,因此它可以覆盖实际状态栏.>然后,“到”视图控制器接管实际状态栏并将其更改为“轻量级内容”状态.这提供了一个聪明的错觉,即单个状态栏会根据过渡边界更改颜色,但实际状态栏实际上始终位于快照窗口下方,并且如果不是快照窗口,则确实会在转换开始时立即可见在它的上面.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。