ios - SwiftUI - 更改 GraphicalDatePickerStyle DatePicker 的可见性会导致内存泄漏
问题描述
我有一个具有日期选择器 ( GraphicalDatePickerStyle
) 的应用程序。它默认隐藏。当您点击包含它的视图时,它变得可见。
日期时间选择器
struct DateTimePicker<Content: View>: View {
@Binding var selection: Date
@State private var isDatePickerVisible: Bool = false
private var displayedComponents: DatePickerComponents
private var content: (_ isVisible: Bool) -> Content
init(selection: Binding<Date>,
displayedComponents: DatePickerComponents = [.date],
content: @escaping (_ isVisible: Bool) -> Content) {
self._selection = selection
self.content = content
self.displayedComponents = displayedComponents
}
var body: some View {
VStack(alignment: .center) {
self.content(isDatePickerVisible)
.onTapGesture {
withAnimation {
self.isDatePickerVisible.toggle()
}
}
if isDatePickerVisible {
VStack {
DatePicker("",
selection: $selection,
displayedComponents: self.displayedComponents)
.labelsHidden()
.datePickerStyle(GraphicalDatePickerStyle())
}
}
}
}
}
包含 DateTimePicker 的 ContentView
struct ContentView: View {
@State var selection = Date()
var body: some View {
ScrollView(.vertical) {
DateTimePicker(selection: $selection) { _ in
HStack {
Text("Date ")
Spacer()
Text("\(selection)")
}
}
}
}
}
如果显示和隐藏,会有一些内存泄漏DateTimePicker
。我尝试了很多但无法修复它。
解决方案
推荐阅读
- r - 从R中的时间序列中删除闰日后获取一年中的哪一天
- c# - 敌人不动
- excel - 如何在字符串中添加括号
- inno-setup - 在 inno setup 中保存路径
- vue.js - 如何修复导致未定义错误的属性“状态”的 Axios 拦截器
- python - 在 Panda 中计算两种类型记录的数字表
- python - 返回不匹配的值
- unity3d - UnityWebRequest 数据为空
- apache-flink - 在 Java Flink 应用程序中使用 Python 处理器
- adobe-illustrator - 我正在寻找一个自动编号系统,用于在 Photoshop 中按编号工具包自定义绘画