iOS 小组件开发第十一篇:致敬那些钻研小组件动画的同行们

这里每天分享一个 iOS 的新知识,快来关注我吧

前言

之前文章传送门:

iOS 小组件开发第一篇:基础介绍
iOS 小组件开发第二篇:时间线
iOS 小组件开发第三篇:实战
iOS 小组件开发第四篇:小组件的尺寸
iOS 小组件开发第五篇:开发可配置的小组件
iOS 小组件开发第六篇:点击事件‍和交互
iOS 小组件开发第七篇:锁屏小组件
iOS 小组件开发第八篇:灵动岛开发
iOS 小组件开发第九篇:在 iOS 17 上创建可交互的小组件
iOS 小组件开发第十篇:小组件动画

前面讲了很多小组件的内容,也讲了 iOS 17 中新增的过渡动画,在 iOS 17 之前动画一直是被禁用的,但是有人发现在一些应用的小组件中依然有动画存在,比如下边这种:

他们是怎么在禁用动画的情况下做到的呢?很多人都好奇,甚至有人花钱悬赏来实现这种方案,我也跟踪了一下这件事,主要有几个方案。

方案一:每秒刷一次

这个方案主要是利用小组件的时间线,每秒钟调用一次 reloadAllTimelines 方法,然后一帧一帧来切换 UI,从而实现一个"假动画"。

这种方案比较适合做帧动画,但是对于动画的流畅性有要求的话就不行了,我也看到有一些其他 App 利用了这种方案的,比如 colorful:

这个方案是有开源的,代码库地址:github.com/lexrus/LexC...

方案二:利用特殊字体

这个方案是我完全没想到的,大概思路是自己制作一种特殊的字体,生成 ttf 文件导入项目,不同的数字组合可以有不同的字符显示,类似这样:

作者利用这个思路做了一个简单闪烁动画:

项目地址:github.com/liudhzhyym/...

方案三,万能小组件方案

这个方案是万能小组件的作者开源出来的,基本上实现了各个方向的平移、旋转、缩放动画,动画也是平滑的,目前来看是最好的方案,如果大家想在自己的小组件中增加动画,可以利用这个项目:github.com/TopWidgets/...

题外话

我非常敬佩有这么多非常牛的同行,在苹果没有开放 API 的情况下能钻研出这些方案,这些方案开源出来之后一定程度上会被滥用,所以相信不久之后苹果可能还会想办法禁止,不过无论如何这种钻研的精神是非常值得我们所有开发者学习的。

这里每天分享一个 iOS 的新知识,快来关注我吧

本文同步自微信公众号 "iOS新知",每天准时分享一个新知识,这里只是同步,想要及时学到就来关注我吧!

相关推荐
AI云海2 小时前
iOS 多 Target 打包、UAT/生产测试与上架 App Store 全流程指南
ios
阿里超级工程师4 小时前
最新快速申请ios打包证书和profile文件步骤
ios·打包证书
2501_915909068 小时前
iOS 应用反调试技详解术 检测调试器的原理与防护实践
android·ios·小程序·https·uni-app·iphone·webview
游戏开发爱好者89 小时前
TraceEagle 代理抓包详解,无感代理、去证书绑定与 HTTP/3 解密能力解析
网络协议·计算机网络·网络安全·ios·adb·https·udp
aiopencode10 小时前
SwiftUI Introspect生产环境完全指南:为什么它是安全可靠的选择
后端·ios
for_ever_love__11 小时前
iOS: 网络管理单例
学习·ios·objective-c
00后程序员张11 小时前
iOS加固技术路线全面解析:Bitcode模式、源码模式与汇编模式对比及爱加密优势
android·汇编·ios·小程序·uni-app·cocoa·iphone
ii_best21 小时前
更新!移动端开发软件按键安卓版&手机助手v5.1.0上线!本地AI识别全面解锁,脚本开发再升级
android·人工智能·ios·按键精灵
weixin_403810131 天前
03-iOS免越狱无线投屏-上传图片和视频到相册
ios·新媒体运营·跨境电商·ios自动化·ios投屏·ios智能体·ios脚本
2501_916007471 天前
SwiftUI 声明式语法与 Xcode 预览功能详解
ide·vscode·ios·swiftui·个人开发·xcode·敏捷流程