我试图用 TextView 覆盖日期选择器,因为 SwiftUI 日期选择器不太可定制。这样我就可以控制标签的外观与日期选择器不同的颜色。
我遇到的问题是,当有东西放在日期选择器上面时,日期选择器不会注册点击。在 ZStack 或 .overlay 中。
我尝试了许多不同的解决方法,例如将文本前面的 .opacity 设置为零
ZStack {
DatePicker("Due Date", selection: $startDate, displayedComponents: .date)
.labelsHidden()
.cornerRadius(10)
.allowsHitTesting(true)
Text("hi this is text")
.allowsHitTesting(false)
}
有什么帮助吗?
最佳答案
您可以采取相反的方法,翻转 ZStack
的顺序,输入 Text
背后DatePicker
设置DatePicker
的不透明度为低值。甚至清洁工也只是使用 background
:
DatePicker("Due Date", selection: $startDate, displayedComponents: .date)
.labelsHidden()
.allowsHitTesting(true)
.opacity(0.0101)
.background(Text("Hi - this is text!"))
SwiftUI 不会跟踪对不可见元素的点击,因此不透明度不能为 0。事实上,它似乎停止注册任何东西 <=
0.1
。所以,它并不完美,但对我来说它看起来相当隐形。
关于ios - 无法使用 SwiftUI Datepicker 重叠文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67496298/