Swift Playground 中使用SwiftUI
程序员文章站
2022-04-09 21:42:38
...
import UIKit
import SwiftUI
import PlaygroundSupport
private let dateFormatter: DateFormatter = {
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .medium
dateFormatter.timeStyle = .medium
return dateFormatter
}()
struct ContentView: View {
@State private var dates = [Date]()
var body: some View {
NavigationView {
MasterView(dates: $dates)
.navigationBarTitle(Text("Master"))
.navigationBarItems(
leading: EditButton(),
trailing: Button(
action: {
withAnimation { self.dates.insert(Date(), at: 0) }
}
) {
Image(systemName: "plus")
}
)
DetailView()
}.navigationViewStyle(DoubleColumnNavigationViewStyle())
}
}
struct MasterView: View {
@Binding var dates: [Date]
var body: some View {
List {
ForEach(dates, id: \.self) { date in
NavigationLink(
destination: DetailView(selectedDate: date)
) {
Text("\(date, formatter: dateFormatter)")
}
}.onDelete { indices in
indices.forEach { self.dates.remove(at: $0) }
}
}
}
}
struct DetailView: View {
var selectedDate: Date?
var body: some View {
Group {
if selectedDate != nil {
Text("\(selectedDate!, formatter: dateFormatter)")
} else {
Text("Detail view content goes here")
}
}.navigationBarTitle(Text("Detail"))
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
let contentView = ContentView()
PlaygroundPage.current.liveView = UIHostingController(rootView: contentView)
上一篇: php 长链接生成短链接
推荐阅读
-
详解Swift中对C语言接口缓存的使用以及数组与字符串转为指针类型的方法
-
IOS 开发之swift中UIView的扩展使用的实例
-
详解Swift中对C语言接口缓存的使用以及数组与字符串转为指针类型的方法
-
IOS 开发之swift中UIView的扩展使用的实例
-
Swift 中如何使用 Option Pattern 改善可选项的 API 设计
-
iOS FMDB 在swift4.0中使用
-
Swift4.0中Runtime method_exchangeImplementations的使用和initialize()方法的替代
-
macOS开发中客户端和javaScript的互调(使用Swift开发)
-
Swift中的指针操作及使用
-
Swift:SwiftUI中MapKit的使用体验