
开发疑难秒懂百科
文章平均质量分 93
生动有趣的表述、鲜活的图表、严谨而不枯燥的逻辑让你瞬间懂得Apple开发中(侧重于SwiftUI以及调试)的痛点、难点问题。
优惠券已抵扣
余额抵扣
还需支付
¥69.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
大熊猫侯佩
一枚贪吃路痴还未秃码农。优快云 博客专家,iOS 与 Swift 版块版主,热爱苹果开发。
人生看淡,不服就干!
展开
-
SwiftUI如何在动画完成时得到通知
在App开发中,少不了动画的点缀。有时候我们希望在动画完成时得到通知,这在UIKit编程中是家常便饭的事,但在SwiftUI中又该怎么做呢?本博向大家演示了如何在单一、复合以及重复动画的完成时如何得到通知,相信看完之后一定收获满满。原创 2020-12-14 21:37:40 · 9156 阅读 · 14 评论 -
蹊跷的崩溃:CoreData 数据保存时提示“不可接受类型”(Unacceptable type)
在本篇博文中,我们讨论了为何在 CoreData 支持的 App 保存数据时会出现“不可接受类型”(Unacceptable type of value)的崩溃,随后溯本回原找到问题的根本原因并给出完美的解决之道。原创 2025-04-01 08:44:16 · 163 阅读 · 0 评论 -
如何让 SwiftUI 中 @Query 宏能够动态改变获取的 SwiftData 数据结果
在本篇博文中,我们先介绍了目前 SwiftUI 6.0 + SwiftData 2.0 仍然无法提供可以动态查询数据 @Query 宏的窘境,并随后给出原生解决方案。原创 2025-02-07 14:38:23 · 96 阅读 · 7 评论 -
SwiftUI 视图 CoreData 的 @FetchRequest 请求结果在预览中无法自动刷新的解决之道
在本篇博文中,我们讨论了 Xcode 预览里 SwiftUI 视图的 @FetchRequest 请求结果无法自动刷新界面的问题,并给出完美的解决方案。原创 2025-01-06 16:19:41 · 114 阅读 · 4 评论 -
向 SwiftUI 视图注入 managedObjectContext 环境变量导致 Xcode 预览(Preview)崩溃的解决
在本篇博文中,我们讨论了在 SwiftUI + CoreData 应用里向 Xcode 预览中视图的环境变量传入托管对象上下文(NSManagedObjectContext)可能会导致崩溃的问题,并用一招将其“驯服”。原创 2025-01-02 15:08:14 · 890 阅读 · 5 评论 -
iOS 18 导航栏插入动画会导致背景短暂变白的解决
在本篇博文中,我们介绍了为何在向 iOS 导航栏插入内容时其背景会短暂变白,并随后讨论了完美且简单的解决之道!原创 2024-11-15 09:05:46 · 576 阅读 · 6 评论 -
SwiftUI 中 List 或 Form 子视图关联的 swipeAction 导致展开动画异常的解决
在本篇博文中,我们介绍了 SwiftUI 中 List 或 Form 子视图(Cell)关联的 swipeAction 可能会导致收起和展开动画异常的问题,并给出完美的解决方案。原创 2024-10-26 18:00:57 · 181 阅读 · 10 评论 -
SwiftUI 中 TabView 视图导航栏上按钮丢失问题的解决
在本篇博文中,我们介绍了如何在 SwiftUI 的 TabView 子视图内部发生变化时(子视图导航和 Sheeting 操作)保证其导航栏上的项目“不丢失”,并提供了两种解决方案。原创 2024-08-08 08:20:45 · 224 阅读 · 14 评论 -
SwiftUI 如何定制 Picker 视图当前选中行的背景颜色?
在本篇博文中,我们介绍了在 SwiftUI 里定制内置原生视图外观的必要条件,并用实际的例子手把手带领大家一步一步打造了一款自定义选中行背景色可调的 Picker 选择器。原创 2024-08-07 09:58:16 · 298 阅读 · 5 评论 -
SwiftUI @FetchRequest 中 CoreData 托管对象不能正确被刷新的解决
在本篇博文中,我们讨论了 SwiftUI @FetchRequest 里 CoreData 托管集合内部单个对象的变化,不能导致 @FetchRequest 的 FetchedResults 对应界面正确被刷新的问题,并给出两种解决之道,任君选择。原创 2024-07-11 10:32:40 · 242 阅读 · 7 评论 -
SwiftUI 截图(snapshot)视频画面的极简方法
在本篇博文中,我们讨论了如何在 SwiftUI 中用最简单的方式不借助任何其它库,实现原生的视频播放和视频截图功能。原创 2024-07-11 10:15:03 · 641 阅读 · 14 评论 -
SwiftUI 中 Grid 内多个 NavigationLink 同时发生导航之诡异问题的解决
在本篇博文中,我们讨论了 SwiftUI 的 Grid(包括 LazyVGrid 和 LazyHGrid)中如果包含多个 NavigationLink,点击任何单独一个都会导致全部 NavigationLink 同时发生导航这一问题的解决方法。原创 2024-07-03 13:43:44 · 365 阅读 · 7 评论 -
让 SwiftUI 原生 TabView 支持标签页切换转场动画
在本篇博文中,我们介绍了 SwiftUI 原生 TabView 支持标签切换转场动画的原理,并给出了详细的示例代码。原创 2024-07-02 18:13:37 · 499 阅读 · 11 评论 -
SwiftUI 利用 Swizz 黑魔法为系统创建的默认对象插入新协议方法(六)
在本篇博文中,我们讨论了如何在 SwiftUI 中利用 SWIZZ 黑魔法在运行时找到关键的拖放对象,并向其注入新的拖放完成回调方法,以便让本系列博文画上一个圆满的句号!原创 2024-06-12 09:07:19 · 243 阅读 · 11 评论 -
SwiftUI 利用 Swizz 黑魔法为系统创建的默认对象插入新协议方法(五)
在本篇博文中,我们讨论了 Swift 中的 SWIZZ 到底是一个怎样的存在?我们举了 ruby 语言中的“猴打补丁”机制与此对照,并最后用如何 HOOK UIViewController.viewDidLoad 方法生动的展示了 SWIZZ 的强大威力!原创 2024-06-05 09:23:29 · 392 阅读 · 17 评论 -
SwiftUI 利用 Swizz 黑魔法为系统创建的默认对象插入新协议方法(四)
在本篇博文中,我们讨论了如何修复 SwiftUI 拖放中的一个小 Bug,并介绍了 SwiftUI 拖放机制中底层的 UIKit 世界。原创 2024-06-05 09:22:31 · 938 阅读 · 10 评论 -
SwiftUI 利用 Swizz 黑魔法为系统创建的默认对象插入新协议方法(三)
在本篇博文中,我们讨论了如何调整 SwiftUI 中被拖拽视图以及拖拽视图拖拽时下方视图的外观,可以看到这在 SwiftUI 是多么轻而易举的事儿。原创 2024-06-04 15:26:36 · 262 阅读 · 4 评论 -
SwiftUI 利用 Swizz 黑魔法为系统创建的默认对象插入新协议方法(二)
在本篇博文中,我们初步实现了本系列博文示例中所需的“前一半”功能,并对其中一些细节做了详细的介绍。原创 2024-06-04 15:10:13 · 185 阅读 · 5 评论 -
SwiftUI 利用 Swizz 黑魔法为系统创建的默认对象插入新协议方法(一)
在本篇博文中,我们讨论了在 SwiftUI 中完成拖放操作的总体思路,并进一步介绍了本文中示例代码所要实现的具体功能。原创 2024-06-04 14:53:38 · 147 阅读 · 4 评论 -
SwiftUI 解决英雄(Hero)动画导致“图片墙”点击切换时卡顿唐突的问题
在本篇博文中,我们讨论了 SwiftUI 英雄动画(Hero Animation)在新旧动画快速切换过渡时可能导致的唐突和不和谐问题,并给出优雅简洁的解决之道。原创 2024-04-17 19:15:41 · 215 阅读 · 0 评论 -
早起的“鸟儿”有虫吃:如何在 App 运行的极早期执行代码?
在本篇博文中,我们讨论了在 App 运行早期抢先执行代码的几种方式,并按照实力将它们依次排序。原创 2024-04-02 09:41:07 · 325 阅读 · 13 评论 -
SwiftUI 在 App 中弹出全局消息横幅(下)
在本篇博文中,我们先是利用共享状态作为新旧 Windows 间的沟通桥梁,接着派生出新的 UIWindow 类返回对全局视图交互事件负责的 UIView,最后我们利用 Preference 机制完美的获取到了全局消息横幅的位置和尺寸从而圆满了整个实现。原创 2024-03-04 22:06:52 · 372 阅读 · 9 评论 -
SwiftUI 在 App 中弹出全局消息横幅(上)
在本篇博文中,我们先是讨论了弹出传统消息横幅的不和谐之处,并随即介绍了什么是全局消息横幅,最后提出了实现全局消息横幅的“双生” Windows 机制。原创 2024-03-04 21:57:02 · 300 阅读 · 0 评论 -
SwiftUI 支持拖放功能的集合视图(Grid)如何捕获手指按下并抬起这一操作
在本篇博文中,我们讨论了 SwiftUI 如何在应用拖放(Drag&Drop)功能的同时,监听捕获到用户手指按下并抬起这一操作,该实现可以通过简单地扩展支持更多的应用场景。原创 2024-02-24 10:07:13 · 265 阅读 · 9 评论 -
UIKit 在 UICollectionView 拖动时动态更改 Cell 外观的原理和实现
在本篇博文中,我们讨论了如何发挥 UIKit 比 SwiftUI 更底层,更全面的优势去实现 UICollectionView 拖动时更改 Cell 外观的功能;我们还利用 iOS 16+ 新推出的机制将 SwiftUI 视图和 UIKit Cell 巧妙的融合在一起,充分发挥了它们各自的长处!原创 2024-02-23 14:25:08 · 216 阅读 · 1 评论 -
SwiftUI 打造酷炫流光边框 + 微光滑动闪烁的 3D 透视滚动卡片墙
在本篇博文中,我们讨论了如何实现一款酷炫边框流光 + 背景微光滑闪的卡片3D 透视滚动效果。原创 2024-01-24 18:38:51 · 752 阅读 · 9 评论 -
SwiftUI 纯手工打造 100% 可定制的导航栏
在本篇博文中,我们讨论了如何借助秃头码农们天马行空的想象力,在 SwiftUI 中纯手工恣意创建任何奇妙样式的定制导航栏。原创 2024-01-22 10:03:12 · 330 阅读 · 9 评论 -
SwiftUI 如何动态开始和停止播放永久重复(repeatForever)动画
在本篇博文中,我们讨论了在 SwiftUI 中如何动态开始和停止播放永久重复(repeatForever)的动画,同时避免不必要的动画“叠加”效果。原创 2023-11-21 21:02:15 · 1209 阅读 · 24 评论 -
SwiftUI 如何保证 Text 中字符数量相等的字符串显示宽度一定相同?
在本篇博文中,我们讨论了在 SwiftUI 中如何保证 Text 里字符数量相等的字符串显示宽度一定相同,并且字符串内部的换行也同样保持一致。原创 2023-11-11 15:22:16 · 1517 阅读 · 16 评论 -
SwiftUI 如何为文件和图片加入便捷的快速预览功能
在本篇博文中,我们在 SwiftUI 中实现了任意(包括图片、PDF、HTML、文本等等)文件内容的快速预览功能,我们还更进一步为其添加了预览窗口弹出控制和缓存的支持。原创 2023-11-01 16:52:34 · 493 阅读 · 14 评论 -
CoreData + CloudKit 在初始化 Schema 时报错 A Core Data error occurred 的解决
在本篇博文中,CoreData + CloudKit 项目在初始化 Schema 报 “A Core Data error occurred” 错时,我们通过擘肌分理的分析找到了问题的原因,并成功将其降服!原创 2023-10-09 15:02:35 · 288 阅读 · 12 评论 -
深入理解 Swift 新并发模型中 Actor 的重入(Reentrancy)问题
在本篇博文中,我们通过难易不同的两个小例子深入浅出的向小伙伴们介绍了 Swift 新并发模型中 Actor 重入(Reentrancy)可能引发的问题,并给出解决方案。原创 2023-09-26 15:03:46 · 742 阅读 · 3 评论 -
SwiftUI 在 iOS 17 上发生“诡异”崩溃的解决:AsyncRenderer layout engine performed from background thread
在本篇博文中,我们通过缜密分析,成功解决了 SwiftUI 只在 iOS 17 发生的 AsyncRenderer 线程中 NSIS 引擎渲染布局发生冲突导致的崩溃问题并介绍了该崩溃是由于 iOS 17 中一个重要改变引起的。原创 2023-09-25 20:34:15 · 1560 阅读 · 6 评论 -
SwiftData(iOS 17+)如何在数据新建和更新中途出错时恢复如初?
在本篇博文中,我们首先简单介绍了 SwiftData (iOS 17+)框架,随后讨论了在 SwiftData 数据新建或更新中途发生错误时如何优雅的将一切恢复到原来的状态。原创 2023-09-21 16:02:53 · 1054 阅读 · 8 评论 -
CoreData 在新建或更新托管对象中途发生错误时如何恢复如初?
在本篇博文中,我们讨论了如何在 CoreData 托管对象新建和更新发错误时,“丢弃”任何已经发生的改变,将一切"回归本初"!原创 2023-09-20 11:54:46 · 282 阅读 · 10 评论 -
Swift 另辟蹊径极速生成图片的缩略图
在本篇博文中,我们介绍了如何仅用 自家代码就实现极速生成图片缩略图的功能,并随后讨论了如何进一步加速。原创 2023-09-06 21:31:40 · 376 阅读 · 7 评论 -
Swift 如何从图片数据(Data)检测原图片类型?
在本篇博文中,我们讨论了如何从图片数据(Data)检测出原图片的类型,支持 jpeg(jpg), tiff, bmp, ico, icns, gif, png, webp, svg 等 9 种图片格式,并且可以轻松扩展支持新图片类型。原创 2023-09-03 13:09:37 · 1558 阅读 · 9 评论 -
SwiftUI 为不同视图限制不同的屏幕旋转方向
在本篇博文中,我们实现了在 SwiftUI 中(iOS 16+ 以及 iOS 17 beta4)为任意视图指定屏幕旋转方向(Interface Orientations),相信大家都会收获满满。原创 2023-08-26 13:59:13 · 1847 阅读 · 15 评论 -
Swift async/await 并发中如何将任务组(TaskGroup)转换为异步序列(AsyncSequence)
在本篇博文中,我们讨论了如何将 Swift 结构化并发中任务组的执行结果转换为异步序列来提高执行效率,并介绍了如何取消和限制子任务的执行。原创 2023-08-09 14:23:39 · 1177 阅读 · 15 评论 -
极简实现任意版本 SwiftUI 中隐藏和显示系统底部横条(Home Indicator)
在本篇博文中,我们实现了在任意版本 SwiftUI 中都能游刃有余隐藏和显示系统底部横条(Home Indicator)的方法,并顺带讨论了如何优雅的替换当前活动 Window 中的 rootViewController (根控制器)。原创 2023-07-28 16:58:21 · 1872 阅读 · 11 评论