SwiftUI 4 All In One
SwiftUI 4 All In One
https://developer.apple.com/xcode/swiftui/
WWDC22 - Apple Developer
https://developer.apple.com/wwdc22/
SwiftUI 4
SwiftUI Charts
Resizable Bottom Sheet
MultiDatePicker
struct MultiDatePickerDemo: View {
@State private var selectedDates: Set<DateComponents> = []
var body: some View {
MultiDatePicker("Choose your preferred dates", selection: $selectedDates)
.frame(height: 300)
}
}
NavigationStack and NavigationSplitView
ShareLink for Data Sharing
struct ShareLinkDemo: View {
private let url = URL(string: "https://www.xgqfrms.xyz")!
var body: some View {
ShareLink(item: url)
}
}
Table for iPadOS
struct TableViewDemo: View {
private let members: [Staff] = [
.init(name: "Vanessa Ramos", position: "Software Engineer", phone: "2349-233-323"),
.init(name: "Margarita Vicente", position: "Senior Software Engineer", phone: "2332-333-423"),
.init(name: "Yara Hale", position: "Development Manager", phone: "2532-293-623"),
.init(name: "Carlo Tyson", position: "Business Analyst", phone: "2399-633-899"),
.init(name: "Ashwin Denton", position: "Software Engineer", phone: "2741-333-623")
]
var body: some View {
Table(members) {
TableColumn("Name", value: \.name)
TableColumn("Position", value: \.position)
TableColumn("Phone", value: \.phone)
}
}
}
Expandable Text Field
Gauge
struct GaugeViewDemo: View {
@State private var progress = 0.5
var body: some View {
Gauge(value: progress) {
Text("Upload Status")
}
}
}
Gauge(value: progress) {
Text("Upload Status")
} currentValueLabel: {
Text(progress.formatted(.percent))
} minimumValueLabel: {
Text(0.formatted(.percent))
} maximumValueLabel: {
Text(100.formatted(.percent))
}
ViewThatFits
Gradient and Shadow
Image(systemName: "trash")
.frame(width: 100, height: 100)
.background(in: Rectangle())
.backgroundStyle(.purple.gradient)
.foregroundStyle(.white.shadow(.drop(radius: 1, y: 3.0)))
.font(.system(size: 50))
Grid API
Grid {
GridRow {
IconView(systemName: "trash")
IconView(systemName: "trash")
}
GridRow {
IconView(systemName: "trash")
IconView(systemName: "trash")
}
}
AnyLayout and Layout Protocol
https://www.appcoda.com/swiftui-4/

swiftui 100 days
100 Days of SwiftUI
https://www.hackingwithswift.com/100/swiftui/
https://www.youtube.com/watch?v=AWZzEGwkenQ
refs
https://github.com/xgqfrms/SwiftUI-In-Action
©xgqfrms 2012-2025
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/16636243.html
未经授权禁止转载,违者必究!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2020-08-29 Docker in Action
2020-08-29 How to enable a local HTTPS website in macOS
2020-08-29 美元街
2020-08-29 Node.js & ES Modules & Jest
2019-08-29 Observer & MutationObserver & IntersectionObserver & Proxy & Object.defineProperty()
2019-08-29 StackOverflow & xgqfrms All in One
2019-08-29 js & shallow copy & deep copy