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新知",每天准时分享一个新知识,这里只是同步,想要及时学到就来关注我吧!

相关推荐
兔云程序6 小时前
消息称苹果iPhone系列将完全放弃LCD屏幕
ios·iphone
JackLee188 小时前
Metal 之旅之MTLLibrary
ios·metal·图形绘制·视频渲染·mtllibrary
missmisslulu1 天前
电容笔值得买吗?2024精选盘点推荐五大惊艳平替电容笔!
学习·ios·电脑·平板
GEEKVIP1 天前
手机使用技巧:8 个 Android 锁屏移除工具 [解锁 Android]
android·macos·ios·智能手机·电脑·手机·iphone
GEEKVIP1 天前
如何在 Windows 10 上恢复未保存/删除的 Word 文档
macos·ios·智能手机·电脑·word·笔记本电脑·iphone
奇客软件1 天前
iPhone使用技巧:如何恢复变砖的 iPhone 或 iPad
数码相机·macos·ios·电脑·笔记本电脑·iphone·ipad
奇客软件2 天前
如何从相机的记忆棒(存储卡)中恢复丢失照片
深度学习·数码相机·ios·智能手机·电脑·笔记本电脑·iphone
GEEKVIP3 天前
如何修复变砖的手机并恢复丢失的数据
macos·ios·智能手机·word·手机·笔记本电脑·iphone
一丝晨光3 天前
继承、Lambda、Objective-C和Swift
开发语言·macos·ios·objective-c·swift·继承·lambda