gpt4 book ai didi

xcode - SwiftUI:如何创建自定义 UIDatePicker?

转载 作者:行者123 更新时间:2023-12-05 08:39:22 25 4
gpt4 key购买 nike

我成功地在 SwifUI 中创建了 UIDatePicker,但是当我在选择器中更改日期轮时,日期值没有更新,这是我的代码:

struct DatePicker: UIViewRepresentable {
@Binding var date: Date

func makeUIView(context: Context) -> UIDatePicker {
let view = UIDatePicker()
view.datePickerMode = .date
return view
}
func updateUIView(_ uiView: UIDatePicker, context: Context) {
uiView.date = date
}
}

然后我从这样的 View 中调用它:

struct SwiftUIView: View {
@State var date = Date()
var body: some View {
DatePicker(date: self.$date)
}
}

最佳答案

这是可能的方法。使用 Xcode 11.2/iOS 13.2 测试

struct DatePicker: UIViewRepresentable {
@Binding var date: Date

func makeUIView(context: Context) -> UIDatePicker {
let datePicker = UIDatePicker()
datePicker.datePickerMode = .date
datePicker.addTarget(context.coordinator, action: #selector(Coordinator.changed(_:)), for: .valueChanged)
return datePicker
}

func updateUIView(_ datePicker: UIDatePicker, context: Context) {
datePicker.date = date
}

func makeCoordinator() -> DatePicker.Coordinator {
Coordinator(date: $date)
}

class Coordinator: NSObject {
private let date: Binding<Date>

init(date: Binding<Date>) {
self.date = date
}

@objc func changed(_ sender: UIDatePicker) {
self.date.wrappedValue = sender.date
}
}
}

关于xcode - SwiftUI:如何创建自定义 UIDatePicker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59849818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com