Snapchat更新状态栏iOS7更新

2023-12-31

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

https://i.stack.imgur.com/4OlRg.jpg https://i.stack.imgur.com/4OlRg.jpg

他们如何在不使用私有 API 的情况下做到这一点,或者他们正在使用私有 API?

我调查过的内容:

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

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

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


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

您关于他们不使用屏幕截图的说法是错误的。您离开一侧的状态栏是快照,不会改变。一分钟过去后,您可以轻松地看到这一点,您要转换到的视图的新状态栏将会发生变化,因为它是真实的,但旧状态栏不会变化,因为它是快照。这使得幻觉很容易实现。

以下是高层正在发生的事情:

  1. 当您开始转换时,应用程序会拍摄状态栏的快照(很可能它实际上拍摄了整个状态栏的快照)UIScreen并简单地将状态栏裁剪出来)在其当前状态下,并将包含该快照的窗口附加到转换中视图的顶部,锚定到最终转换位置并由“来自”视图控制器的视图屏蔽。这个窗口似乎有一个windowLevel above UIWindowLevelStatusBar所以它能够覆盖真实的状态栏。

  2. 然后,“to”视图控制器接管实际状态栏并将其更改为“浅内容”状态。这呈现出一种巧妙的错觉,即单个状态栏随过渡边框改变颜色,但真正的状态栏实际上始终位于快照窗口下方,并且如果不是快照窗口位于过渡开始时,它确实会立即可见在它的上面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Snapchat更新状态栏iOS7更新 的相关文章

  • 在 iOS 中,http 204 响应返回空白页面,有办法阻止这种情况吗?

    以前可能有人问过这个问题 但我似乎找不到解决方案 所以如果是这种情况 我深表歉意 我正在开发一个使用express的简单节点应用程序 其中一个帖子路由返回 http 204 并发送它 下面是我的代码 router post id funct
  • Itunes Connect 测试飞行公共链接有效性

    苹果最近为试飞版本启用了公共链接功能 我们可以与任何人共享此链接 他可以使用此公共链接安装应用程序 此公共链接背后的构建有效期为 90 天 我的问题是 与用户共享公共链接后 我们可以增加构建的到期时间吗 这样公共链接的有效性就会增加 我们不
  • 图像像素数据如何“扫描”图像像素?

    目标 查找仅包含黑色和透明像素的图像左侧的第一个黑色像素 我拥有的 我知道如何获取像素数据并拥有黑色和透明像素的数组 在这里找到它 https stackoverflow com a 1262893 358480 https stackov
  • 如何使用 PKAddPassButton 创建“添加到苹果钱包”按钮以进行本地化通行证

    在我的 iOS 项目中 我有一个屏幕 允许用户创建苹果通行证并将其添加到钱包中 Apple 建议使用 PKAddPassButton 创建 添加到苹果钱包 按钮 当我尝试使用以下代码创建苹果通行证时 let passButton PKAdd
  • 将 CFIndex 转换为 NSUInteger?

    我如何转换typedef signed long CFIndex to typedef unsigned int NSUInteger 如果我使用一个可以吗 CFIndex作为类型的参数NSUInteger 我还没有铸造它 编译者似乎也不介
  • 无法在 iOS UIWebView 中加载完整的 Facebook 评论插件

    我有一个简单的ViewController在 UIWebView 中加载 FB 评论插件 implementation ViewController void viewDidLoad super viewDidLoad UIWebView
  • 适用于 iPhone 和 HTTP 直播的实时视频聊天

    所以一般来说 我想为 iPhone 制作一个具有视频聊天功能的应用程序 但经过多次搜索 我仍然找不到任何成功的结果 是否有任何公共或私有 API 可用于在 iPhone 上执行此操作 如果您的答案是 是 请帮助我 基本上 我想要的是读取连接
  • IOS 8 CLLocationManager 问题(授权不起作用)

    import MyLocationViewController h define NSLog FORMAT printf s n NSString stringWithFormat FORMAT VA ARGS UTF8String int
  • 使用按计数分组的核心数据获取属性

    这是我想为 Core Data 编写的查询的 SQL 版本 SELECT Group Name COUNT Item Name FROM Item INNER JOIN Group ON Item GroupID Group ID GROU
  • 在 UICollectionView 下面插入子视图

    当我在 UICollectionView 下方添加子视图时 有时子视图会显示在 UICollectionView 单元格上方 这是子视图插入代码 self collectionView insertSubview self garmentV
  • 子视图的子层与更高的子视图重叠

    我有一个问题 我正在创建一个UIView这是从方法返回的 这部分很好 但我注意到 当我将子层添加到其中一个子视图时 这些层与子层添加的层次结构中较高的子视图 textView 和 imageView 重叠到testViewCopy出现在这些
  • 沙盒测试帐户反复询问 iOS 应用内购买的密码

    我用 Swift 语言开发了一个应用程序 我添加了应用内购买来删除广告 我还创建了一个沙箱帐户来测试 但后来我忘记了这个账户的信息 我不确定信息 密码输入屏幕仍然以闪烁的屏幕显示方式显示 即使我重置设备并重新加载它 也没有任何好处 实际上一
  • UIView 和 UITableView 中的 UITapGestureRecognizer 冲突

    我有一个UIView我在其中添加了一个UITapGestureRecognizer 在该视图中 我还有一个子视图 其中基本上是某种UITableView 问题是为什么不UITableView识别连续点击 而是始终转到点击手势识别器的处理程序
  • 如何在 Xcode 4.2 中创建 Shell 脚本目标?

    我想知道是否有人知道 XCode 4 1 如何创建 shell 脚本 该选项不存在 但在最新版本中可能会被称为其他名称 塔 在导航器中选择您的项目 单击 添加目标 为空目标选择 聚合 添加构建阶段 gt 添加运行脚本 单击构建阶段并编辑运行
  • 使用 FFT 执行音频分析

    我已经被这个问题困扰好几天了 并且浏览了几乎所有相关的 StackOverflow 页面 通过这次活动 我现在对 FFT 是什么及其工作原理有了更深入的了解 尽管如此 我在将其实现到我的应用程序中时遇到了极大的困难 简而言之 我想做的是为我
  • 小视频播放

    根据我从互联网收集的信息 MPMoviePlayerController 类不支持小视频播放 因此 为了死马当活马医 我想知道可以使用什么样的方法来让小视频在屏幕的一角播放 而不中断屏幕的其余部分 到目前为止 我们已经遇到了两种可行的解决方
  • 从 Firestore Swift 获取文档 ID

    我正在尝试从中获取文档IDFirestore通过执行这样的查询 func updateStatusInFirestore let orderid saleOrder first Orderid print orderid let setti
  • ios Facebook 添加 FBNativeAdView 作为子视图

    我想使用预建视图FBNativeAdView 不想自定义 FBNative 广告 如link https developers facebook com docs reference ios current class FBNativeAd
  • 启动使用 Simperium 的应用程序时 objectFromJSONString 崩溃

    我得到了一个JSON当我尝试启动使用 Simperium 框架的应用程序时崩溃 NSCFString objectFromJSONString unrecognized selector sent to instance 0x6c561a0
  • 使用 Metal 高效计算 UIImage/CIImage 中有多少透明像素

    我们可以计算有多少个透明像素的最快方法是什么CIImage UIImage 例如 如果我们谈论效率 我的第一个想法是使用Metal Kernel使用任一CIColorKernel左右 但我不明白如何使用它来输出 计数 我还有其他想法 使用某

随机推荐