iOS 摸鱼周报 #72 | 1024 提前预热

本期概要
- 本期话题:1024 程序员节活动,App Store 现已开放 iOS 16.1 和 iPadOS 16.1 App 提交
- 本周学习:当设置
UIImageView
高亮时,会暂停当前的动画;Xcode 14 编译包在 iOS 12.2 以下设备崩溃- 内容推荐:灵动岛有很多玩法还待探索,本期推荐一些相关文章
- 摸一下鱼:CleverToolKit:iOS 开发者辅助工具,页面简洁,体积小巧。目前包含 json2model 功能。
本期话题
1024 程序员节活动
@远恒之义:一年一度的 1024 程序员节日即将到来,作为程序员的我们又可以开心度过(摸鱼)这个专属节日。摸鱼周报的全体编辑在这提前祝大家节日快乐,代码无 bug!
过节少不了活动,我们收集了一些 1024 程序员主题活动,感兴趣的同学可以浏览参与一下
- 致「独一无二」的你|1024 程序员节系列活动启动,SegmentFault 思否社区独家周边等着大家
- 掘金 1024 专场直播——抽象思维与程序员的职业生活,报名预约并转发直播有奖,分享嘉宾:Winter - 前手机淘宝前端负责人,直播时间:10 月 24 号 20:00
- 语雀知识大会:构建你的数字花园,预约直播(10 月 24 日 14:00),参与周边抽奖,奖品有语雀福袋:帆布包、笔记本、金属书签、冰箱贴、贴纸
- 2022 科大讯飞全球 1024 开发者节,活动包含了 A.I. 开发者大赛,不同的城市峰会主题,炫酷的科博会展,有爱的 AI 公益计划等内容
- 2022 长沙 · 中国 1024 程序员节将于 10 月 23 - 25 日在长沙、北京等多地同步举行。本次程序员节以“算力新时代,开源创未来”为活动主题,由 5 大院士领衔,四城联动,开设十余场专业主题论坛,覆盖 AI、芯片、数据库、大数据、数字化转型、工业互联网等技术领域。线下活动会场免费报名,先到先得,你也可选择线上直播平台观看
App Store 现已开放 iOS 16.1 和 iPadOS 16.1 App 提交
@远恒之义:锁定屏幕和灵动岛上的“实时活动”已正式在 iOS 16.1 和 iPadOS 16.1 发布。即日起,你可以使用 Xcode 14.1 RC 发布候选版本来构建 App 并提交审核。此外,自 2023 年 4 月起,所有提交至 App Store 的 iOS 和 iPadOS App 都必须使用 Xcode 14.1 和 iOS 16.1 SDK 来构建。iOS 16 系统更新了许多新 API 和功能,开发者们尽快下载最新的 Xcode 来对 App 进行优化适配吧。
本周学习
整理编辑:夏天
当设置 UIImageView
高亮时,会暂停当前的动画
问题背景
项目通过配置 UIImageView
的 animationImages
实现 loading
动画。项目基于 UICollectionView
实现分页组件。当 loading
动画时,双击图片,动画会暂停。
问题描述
通过 hook
UIImageView
的 stopAnimating
方法并添加断点,查看当动画停止时的调用栈,发现正在设置当前 imageView
为高亮。
这是因为当我们双击UICollectionView
时,UICollectionView
会高亮展示当前的 CollectionViewCell
,此行为会将当前 CollectionViewCell
上支持高亮展示的 subview
的显示状态成高亮。
UIImageView
在设置高亮状态时,会先调用 stopAnimating
。
解决方案
禁止 UICollectionView
高亮行为, UICollectionView
的代理方法shouldHighlightItemAt
返回 false
。
optional func collectionView(
_ collectionView: UICollectionView,
shouldHighlightItemAt indexPath: IndexPath
) -> Bool
Xcode 14 编译包在 iOS 12.2 以下设备崩溃
由于项目支持 iOS 12.0 以上,最新版本测试时发现 iOS 12.1.4 的系统无法打开安装包,而 12.4 的设备可以正常打开。
Xcode 14 的编译包会多出一些系统库,你需要添加 libswiftCoreGraphics.tbd
,否则在 iOS 12.2 以下的系统找不到 libswiftCoreGraphics.tbd
而发生崩溃。

内容推荐
本期我们将推荐一些与实时活动和灵动岛有关的优秀内容
1、在 iOS 16 中显示实时活动 -- 来自:Majid
@东坡肘子:实时活动小组件是 iOS 16 最突出的功能之一。iOS 16 允许我们在锁屏界面或 iPhone 14 Pro 的灵动岛区域显示来自应用程序持续活动的实时状态。本文将介绍如何使用新的 ActivityKit 框架为我们的应用程序构建实时活动小组件。
2、掌握 SwiftUI 的灵动岛 -- 来自:Majid
@东坡肘子:本文将介绍如何使用灵动岛功能在 iPhone 14 Pro 上显示应用程序中的实时活动,是上篇文章的延续。
3、灵动岛 Dynamic Island 初探 -- 来自:Kingnight
@东坡肘子:本篇文章将从软件开发角度,探索灵动岛的展现形式、功能限制、如何具体实现、适用场景等各方面的问题;帮助还不了解相关信息的开发者快速理解这一新的展现形式,并结合自身产品形态做出创新。
4、为 iPhone 14 Pro 的灵动岛设计 -- 来自:Niels Boey
@东坡肘子:作者是一个产品设计师,本文将从设计师的角度对灵动岛功能进行了介绍和讲解。
5、实时活动( Live Activity )- 在锁定屏幕和灵动岛上显示应用程序的实时数据 -- 来自:Layer
@东坡肘子:本文参考、翻译并实现了 Apple‘s documentation activitykit displaying live data with live activities 及 Updating and ending your Live Activity with remote push notifications 内容,并提供了范例代码。
6、如何激活灵动岛中的像素 -- 来自:iPhone 15 Ultra
@东坡肘子:打开黑暗模式 -> 在后台播放一些音乐 -> 转到设置 -> 辅助功能 -> 显示与文本大小 -> 开启/关闭智能反转 -> 你将看到完整的💊。
7、iOS灵动岛【电商商品秒杀】开发实践 -- 来自掘金
@邓利兵:iOS灵动岛【电商商品秒杀】开发实践,详细讲解了灵动岛的基本概念、开发基本要素及细节。Demo中展示了主工程和灵动岛Widget的通讯方式及灵动岛Widget的布局方式。
摸一下鱼
整理编辑:师大小海腾
1、CleverToolKit:iOS 开发者辅助工具,页面简洁,体积小巧。
目前包含 json2model 功能,将 json 解析成项目中使用的 Model,支持 Swift、OC 两种语言,Swift 支持的框架包括 Codable、SwiftyJSON、HandyJSON,OC 支持的框架包括 YYModel、MJExtension。同时该功能还支持了 Xcode Editor Extension,无需打开工具在 Xcode 内部便可以实现操作,共享工具外部设置。
后续还会添加一些好用的功能到这个软件中去。


2、Mac-QuickLook:收录了许多好用的 QuickLook 的插件和软件包。

3、MenuBarX:一款强大的 Mac 菜单栏浏览器,把网页添加到菜单栏上,像原生 App 一样即开即用,为你打开 Web Apps 的新世界。


4、SpiderCard 蜘蛛纸牌 for Mac:仿 Windows 经典单机游戏 —— 蜘蛛纸牌。

关于我们
iOS 摸鱼周报,主要分享开发过程中遇到的经验教训、优质的博客、高质量的学习资料、实用的开发工具等。周报仓库在这里:https://github.com/zhangferry/iOSWeeklyLearning ,如果你有好的的内容推荐可以通过 issue 的方式进行提交。另外也可以申请成为我们的常驻编辑,一起维护这份周报。另可关注公众号:iOS成长之路,后台点击进群交流,联系我们,获取更多内容。
往期推荐
iOS 摸鱼周报 #71 | iOS / One More Thing?
iOS 摸鱼周报 #70 | iOS / iPadOS 16.1 公测版 Beta 3 发布,支持老款 iPad 台前调度
