SwiftUI Picker optional binding
在 SwiftUI 中使用 Picker 控件有多种样式选择,非常方便
在 SwiftUI 中使用 Picker 控件有多种样式选择,非常方便
在 SwiftUI 中使用 Core Data,可以使用 property wrapper @FetchRequest
声明一个 FetchedResults
属性,自动从 Core Data 存储中获取一个数据集。参考文档:https://developer.apple.com/documentation/swiftui/fetchrequest
参考 Text 本地化文档 https://developer.apple.com/documentation/swiftui/text#Localizing-strings。如果使用 string 变量,需要转化为 LocalizedStringKey
, 例如自定义 View,需要传递一个文本参数,可以设置为
通过两层 GeometryReader
读取 ScrollView
内容及置顶视图的位置信息进行处理,可以实现在滚动时,置顶内容固定在顶部,并随着导航标题栏大小标题样式切换而自动适应位置。同时为置顶内容增加了阴影效果,会随着上下滚动深浅变化。
WWDC 20 介绍了在 Playgrounds 中使用 SwiftUI 可以轻松构建原型或者在 Xcode 中使用的组件 https://developer.apple.com/videos/play/wwdc2020/10643/,过程比较简单,这里只记录了 ProgressView
部分的代码,稍有修改。
SwiftUI 中 Image
不同于 UIImage
没有 Image(url:)
API,需要使用 URL 加载图片时可以使用异步图片 AsyncImage
,可以指定 url,设置 placeholder,监听进程等。
最近准备用 SwiftUI 重写一个万年没更新的应用,刚创建应用,模拟器运行,就遇到一个 Xcode 警报,提示 [SceneConfiguration] Info.plist contained no UIScene configuration dictionary (looking for configuration named " (no name)")
,原来是 Info
文件缺少 scene 配置项。
在构建 iOS 应用时经常需要持久化存储数据,Core Data 作为 Apple 提供的官方方案之一,现在已经非常成熟了。可以自定义模型,管理对象关系。借助 CloudKit 可以轻松地把数据同步到 iCloud 上。在 SwiftUI 中使用 Core Data 最简单的方式就是创建项目时直接选择 Use Core Data,参考示例代码,可以很轻松的为已有 SwiftUI 项目接入 Core Data。
SwiftUI 是 Apple 发布于 WWDC 2019 的 UI 框架,采用声明式语法,具有数据绑定、响应式编程及跨平台(Apple 全家桶)等特征。WWDC22 发布了一些新的 API,大大提升了实用性。
Swift Charts 提供了丰富、精美的图表样式来实现数据可视化,从简单的到复杂的,从静态的到动态的,都是开箱即用的,你也可以借由 API 实现丰富的自定义效果。
使用 SwiftUI 更轻松的描述界面、填充数据、更新界面,利用良好的扩展性,使用多种界面布局,构建亲切且直观的用户界面。它采用声明式语法,易于读写,即只需要描述界面的样子,而不是如何构建界面。尤其是在多平台的自适应上,会提供智能默认值。SwiftUI 会随数据模型的改动而自动更新界面。
SwiftUI 中仅支持基本的 if condition
显示内容,但不支持 if let
或 case
。
Text("Shadow").shadow(color: Color.gray, radius: 3, x: 15, y: 20)