kyr*_*ers 2 xcode datepicker picker ios swiftui
我需要创建一个包含 2Pickers和 2 的视图DatePickers。
为了避免它们相互重叠,我使用了.clipped(). 然而,这是行不通的。
我可以成功调整 的大小pickers,但无法将“选择区域”限制为其frame大小。
这是我的代码:
\nVStack(spacing: 10) {\n Picker(selection: self.$dayTypeSelectedIndex, label: Text("")) {\n ForEach(0 ..< self.dayTypes.count, id: \\.self) {\n Text(self.dayTypes[$0])\n .foregroundColor(Color.black)\n }\n }\n .pickerStyle(SegmentedPickerStyle())\n .labelsHidden()\n .clipped()\n \n Spacer()\n \n Group {\n DatePicker("", selection: self.$dateIntervalStart, displayedComponents: .hourAndMinute)\n .labelsHidden()\n .colorInvert()\n .colorMultiply(Color.black)\n .frame(maxHeight: 50)\n .clipped()\n \n Spacer()\n \n Text("\xc3\xa0s")\n .foregroundColor(Color.black)\n \n Spacer()\n \n DatePicker("", selection: self.$dateIntervalEnd, displayedComponents: .hourAndMinute)\n .labelsHidden()\n .colorInvert()\n .colorMultiply(Color.black)\n .frame(maxHeight: 50)\n .clipped()\n }\n \n Spacer()\n \n HStack {\n Picker(selection: self.$tripNotificationDelta, label: Text("")) {\n ForEach(0...60, id: \\.self) {\n Text($0 < 10 ? "0\\($0)" : "\\($0)")\n .foregroundColor(Color.black)\n }\n }\n .labelsHidden()\n .frame(maxWidth: 50, maxHeight: 50)\n .clipped()\n\n Text("mins before trip")\n .foregroundColor(Color.black)\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n我究竟做错了什么?
\n我正在使用 XCode 12。此外,该界面是为未运行 iOS 14 的设备构建的。
\n谢谢!
\n所以,我想通了。就放在.compositingGroup()前面.clipped()。像这样的东西:
DatePicker("", selection: self.$dateIntervalEnd, displayedComponents: .hourAndMinute)
.labelsHidden()
.colorInvert()
.colorMultiply(Color.black)
.frame(maxHeight: 50)
.compositingGroup()
.clipped()
Run Code Online (Sandbox Code Playgroud)