万物皆可截图:SwiftUI 中任意视图(包括List和ScrollView)截图的通用实现

万物皆可截图:SwiftUI 中任意视图(包括List和ScrollView)截图的通用实现_第1张图片

功能需求

在使用 SwiftUI 开发的过程中,有时我们希望能够对特定视图进行截图:

如上图所示:我们实现了 SwiftUI 5.0(iOS 17)中对任意视图(List、gif动画、ScrollView 等等)进行截图的功能。

从目前来说,大家在 SwiftUI 中截图会面临一些问题:

  1. 官方的 ImageRenderer 类兼容性差;
  2. 某些截图技巧从 SwiftUI 3.0 开始已经失效;
  3. 对列表(List)和可滚动视图(ScrollView)无法很好的截图;

那么,到底如何在任意版本 SwiftUI (包括最新的 SwiftUI 5.0)中对任意视图进行截图呢?

本文将会揭晓目前为止兼容性最好的解决方案!

请穿好宇航服,我们即将穿越神奇的图片星海!

Let’s go!!!


功能分析

1. 从 ImageRenderer 谈起

你可能感兴趣的:(开发疑难秒懂百科,swiftui,list,截图,snapshot,ScrollView,可滚动,ImageRenderer)