swiftui 超谈 SwiftUI:.sheet() 坑多多 前言此文为「超谈 SwiftUI」系列的文章,主要输出一些使用 SwiftUI 开发几个 apps 后的一些心得、经验和踩坑记录。希望能帮助到你。本文将介绍 SwiftUI 里 .sheet() 在特定场景下的 Bug 以及 Workaround。什么是 .sheet()在 SwiftUI 上,你使用 .sheet() 来展示一个 Sheet 页面,并在里面展示你的 SwiftUI View。HIG
swiftui 超谈 SwiftUI:探究和实践 “隔山喂牛” 式内建 API 的实现 前言此文为「超谈 SwiftUI」系列的文章,主要输出一些使用 SwiftUI 开发几个 apps 后的一些心得、经验和踩坑记录。希望能帮助到你。本文将剖析 SwiftUI 的一些官方内建 API 可能的实现方式,以及实践如何应用到自己写的自定义 SwiftUI View 上。“隔山喂牛”?在直接解释何为 “隔山喂牛” 式的 API 风格前,先来思考一下,当我们设计一个 View 的 API 的时候,我们到底在设计什么—
swiftui 超谈 Swift:利用 Macros 实现 Swift 版本的 Retrofit 2023 年 Swift 语言和 SwiftUI 都迎来了不少的更新。如果说 SwiftUI 上的更新你大概率可能因为往下兼容性的问题用不上,那么 Swift 5.9 上迎来的 Macros 功能应该能吸引到你的注意:它允许你在编译时根据上下文来生成代码,帮助你减少写重复的相似度过高的代码。Swift Macros 仅仅是帮你生成代码,是一个 ABI 兼容的特性,配合 Xcode 15 即可(当然目前仅是 Beta 版本)并在老项目中使用。如果你不了解
swiftui 超谈 SwiftUI: Menu 下拉菜单的触控响应顺序问题和解决方案 背景和问题在 SwiftUI 里,我们使用 Picker 或者 Menu 来实现一个选择器或者一个下拉菜单,这两者基本是一个东西,只是有一些 UI 细节上的区别(因此本文后续都会只用 Menu 来表示)。它们不是跟 Text 一样是纯 SwiftUI View,而是桥接到 UIKit 和 AppKit 的 SwiftUI View。具体为:在 UIKit 上,等同于使用 UIButton
blog 超谈 SwiftUI:配合 CoreGraphics 实现区域截屏功能 此文为「超谈 SwiftUI」系列的文章,主要输出一些使用 SwiftUI 开发几个 apps 后的一些心得、经验和踩坑记录。希望能帮助到你。我的翻译软件 Photon AI Translator 有一个屏幕截图翻译的功能,通过快捷键激活后,会将屏幕画面冻结同时变暗,然后用户可以通过鼠标拖拽屏幕画出一个区域,然后识别里面的文本,然后进行翻译并显示结果。这里的一个核心技术是,如何实现截屏功能?其实这个没有你想象的难。先来剖析一下这个需求,要实现这个功能,按照步骤来,我们需要:截取当前键盘聚焦的屏幕画面,得到一个 Image往当前键盘聚焦的屏幕上绘制上述得到的 Image覆盖一层黑色半透明的遮罩,然后在上面检测手势操作手势操作将会产生一个