.Clipped() 不适用于 Pickers SwiftUI

.Clipped() not working on Pickers SwiftUI

我需要创建一个包含 2 Pickers 和 2 DatePickers 的视图。

为了避免重叠,我使用了.clipped()。但是,这不起作用。

我可以成功调整 pickers 的大小,但我无法将“选择区域”限制为它们的 frame 大小。

这是我的代码:

VStack(spacing: 10) {
        Picker(selection: self.$dayTypeSelectedIndex, label: Text("")) {
            ForEach(0 ..< self.dayTypes.count, id: \.self) {
                Text(self.dayTypes[[=10=]])
                    .foregroundColor(Color.black)
            }
        }
        .pickerStyle(SegmentedPickerStyle())
        .labelsHidden()
        .clipped()
        
        Spacer()
        
        Group {
            DatePicker("", selection: self.$dateIntervalStart, displayedComponents: .hourAndMinute)
                .labelsHidden()
                .colorInvert()
                .colorMultiply(Color.black)
                .frame(maxHeight: 50)
                .clipped()
            
            Spacer()
            
            Text("às")
                .foregroundColor(Color.black)
            
            Spacer()
            
            DatePicker("", selection: self.$dateIntervalEnd, displayedComponents: .hourAndMinute)
                .labelsHidden()
                .colorInvert()
                .colorMultiply(Color.black)
                .frame(maxHeight: 50)
                .clipped()
        }
        
        Spacer()
        
        HStack {
            Picker(selection: self.$tripNotificationDelta, label: Text("")) {
                ForEach(0...60, id: \.self) {
                    Text([=10=] < 10 ? "0\([=10=])" : "\([=10=])")
                        .foregroundColor(Color.black)
                }
            }
            .labelsHidden()
            .frame(maxWidth: 50, maxHeight: 50)
            .clipped()

            Text("mins before trip")
                .foregroundColor(Color.black)
        }
    }
}

我做错了什么?

我正在使用 XCode 12。此外,此界面是为非 运行 iOS 14.

的设备构建的

谢谢!

所以,我想通了。只需将 .compositingGroup() 放在 .clipped() 之前。像这样:

            DatePicker("", selection: self.$dateIntervalEnd, displayedComponents: .hourAndMinute)
            .labelsHidden()
            .colorInvert()
            .colorMultiply(Color.black)
            .frame(maxHeight: 50)
            .compositingGroup()
            .clipped()