无法将文本与 SwiftUI 日期选取器重叠



我试图用文本视图覆盖日期选择器,因为SwiftUI日期选择器不是很可自定义。通过这种方式,我可以控制标签与日期选择器不同颜色的外观。

我遇到的问题是,当有东西放在日期选择器的顶部时,它不会注册抽头。无论是在ZStack还是.overlay中。

我尝试了很多不同的解决方法,比如在文本前将不透明度设置为零

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注册。所以,它不是完美的,但对我来说它看起来很隐形。

最新更新