- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在最新的 snapchat 更新中,当您“向右滑动消息”时,状态栏会以一种渐变方式从黑色变为白色。
他们如何在不使用私有(private) API 或使用私有(private) API 的情况下做到这一点?
我调查过的内容:
乍一看,我认为他们只是在做其他人所做的事情,(就像 rdio 目前所做的那样)通过屏幕捕获整个屏幕,然后修改/动画化该屏幕截图。
但是...您无法从该屏幕捕获方法访问 UIImage 或为其设置动画,因此尽管您可以移动/裁剪该屏幕截图,但您无法更改其外观。
所以...我测试了它,当状态栏处于该状态(半黑/半白)时,它仍然是实时的,因为它不是屏幕截图,它会响应充电变化/信号变化等,据我所知,如果不使用私有(private) API,这是不可能的。
最佳答案
这让我很好奇,所以我试了一下这个应用程序,并在越狱设备上使用 Spark Inspector 检查了应用程序的 View 层次结构,我发现了一些东西。
您关于他们不使用屏幕截图的说法是错误的。您导航离开的一侧的状态栏是一个快照,不会改变。一分钟过去后,您可以很容易地看到这一点,您正在过渡到的 View 的新状态栏将发生变化,因为它是真实的,但旧状态栏不会,因为它是快照。这使得错觉很容易解决。
这是在高层发生的事情:
当您开始转换时,该应用会拍摄状态栏的快照(很可能它实际上拍摄了整个 UIScreen
的快照并简单地从中裁剪掉状态栏) 处于其当前状态,并将包含该快照的窗口附加到过渡 View 的顶部,锚定到最终过渡位置并被“来自” View Controller 的 View 屏蔽。此窗口似乎在 UIWindowLevelStatusBar
之上有一个 windowLevel
,因此它能够覆盖真实的状态栏。
然后,“to” View Controller 接管实际状态栏并将其更改为“light content”状态。这呈现了一个巧妙的错觉,即单个状态栏随着过渡边框改变颜色,但真正的状态栏实际上总是位于快照窗口下方,并且如果不是因为快照窗口位于,则在过渡开始时确实会立即可见在它上面。
关于ios - Snapchat更新状态栏iOS7更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23588047/
在创建 shapchat ( https://www.snapchat.com/ ) 用户名时,我一直无法找到允许的字符。这里有人可以分享他们关于这方面的知识吗? 上下文:我正在创建一个用户名验证
按照 snapkit 登录文档 (WEB),我实现了服务器端代码并能够为用户获取访问 token (第 2.5 节 https://docs.snapchat.com/docs/tutorials
我正在开发一个网站。我在基于 php、html 的网站上添加了许多社交登录或共享按钮、链接,例如 facebook、tweeter、gplus、pintrest。现在我必须为 snapchat 添加社
我想知道是否有一种方法可以编写允许 PBJVision 在用户在后台播放自己的音乐时录制视频的功能。 最佳答案 AVAudioSession.sharedInstance().setCategory(
我正在开发一个 iOS 应用程序,用户可以发布该应用程序然后接收他们的快照。我已经看到用 "SnapHack" 完成了此操作但 SnapChat 本身并没有允许你做这些事情的 API。那么有人可以引导
SnapChat 如何将图像调整为如此小的文件大小,同时仍保持良好的质量?我的图像为后置摄像头节省了大约 90KB,为前置摄像头节省了 45KB。我在网上看到发送一个快照大约是 15kb。如何更好地优
我无法理解如何着手创建向下滑动手势来关闭覆盖层,该覆盖层是另一个具有自己的对象和图像的屏幕,然后能够滑动回到原始屏幕。 我目前有一个包含 3 个屏幕的 ScrollView 。一个 |乙 | C 和我
我正在开发一个 iOS 应用程序,用户可以在上传图像(如 Snapchat)时添加描述/文本。 他们是渲染图像并将文本添加到图像中,以便它成为图像本身的一部分,还是显示为图像上的 UILabel? 对
我很想知道 SnapChat 如何将数据发送到其他移动设备。例如,它是将数据发送到服务器然后将其存储以供下载,还是通过内置 ios 功能将数据直接发送到设备? 我对在设备之间发送数据的整个过程很感兴趣
我想在不同大小的视频上添加全屏叠加图像, 如果叠加层和视频具有相同的比例(相同的宽度和高度),我使用 ffmpeg 它可以正常工作。 如果视频高度和宽度尺寸小于叠加图像,则叠加图像被挤压,但我想像快照
我正在 android 和 ios 上构建一个应用程序,并且要求用户输入他们的 Snapchat 帐户。我不希望人们添加虚假的 Snapchat 帐户,所以我到处搜索但找不到方法。 我只找到了这个答案
我似乎无法理解一个好的设计,它允许用户创建一个对象,保存到数据库并跟踪该对象是否发布到服务器。 就像在 snapchat 中一样 - 离线时,您可以创建一个包含图片和接收者的快照对象,按发送,它会显示
因此,我们的想法是像 Snapchat 一样向用户提供某种通知(不必是标准的 Android 通知,可以是库或自定义通知)。也就是说,它出现在应用程序中,然后消失,不会出现在状态栏或通知抽屉中。有没有
我正在尝试在我的项目中实现 Snapchat 登录按钮。我已经下载了 SDK,创建了 Snapchat 开发者帐户,并在 info.plist 中编写了一些代码。 现在我可以登录 Snapchat 帐
我想像在 snapchat 中一样使用视频过滤器创建 android 应用程序。问题是我在 IOS 中找不到像 SCRecorder 这样的库,我已经在应用程序中添加了 FFmpeg 但即使使用 ff
我正在创建一个类似于 snapchat 的相机胶卷功能,其中相机位于底层,然后在点击一个按钮后相机胶卷出现。相机胶卷不会占据整个屏幕顶部的搜索栏仍然保留,并且在用向下滑动手势关闭时相机仍在运行。我不确
Snapchat 是如何把这个导航栏做成渐变背景和圆角的。谢谢! 我没有足够大的声誉来发布图片,但它是向人们展示你的 snapchat 的 View ,一直到左边。 func application(
在 snapchat 的登录页面上,按钮出现在键盘的顶部,我可以这样做,但由于 6plus 有不同尺寸的键盘,它把它的一部分切掉了。 我在垂直堆栈 View 中有两个文本字段和两个按钮,我希望垂直堆栈
我无法弄清楚如何将视频从 SnapChat 分享到我的应用程序,而 WhatsApp 可以毫无问题地做到这一点,所以这是可能的。 由于 SnapChat 与 contentprovider 一起使用,
在Shapchat的照片编辑器中,有一个带有引导线的剪刀工具提取对象(通过绘制要提取的对象的边缘)。 我想用 openCV 实现该工具,但我对 openCV 完全陌生。我搜索了openCV文档和教程,
我是一名优秀的程序员,十分优秀!