首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.Clipped()在选取器SwiftUI上不起作用

.Clipped()在选取器SwiftUI上不起作用
EN

Stack Overflow用户
提问于 2020-09-24 23:25:30
回答 1查看 311关注 0票数 1

我需要创建一个具有2个Pickers和2个DatePickers的视图。

为了避免它们相互重叠,我使用了.clipped()。然而,这是不起作用的。

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

下面是我的代码:

代码语言:javascript
复制
VStack(spacing: 10) {
        Picker(selection: self.$dayTypeSelectedIndex, label: Text("")) {
            ForEach(0 ..< self.dayTypes.count, id: \.self) {
                Text(self.dayTypes[$0])
                    .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($0 < 10 ? "0\($0)" : "\($0)")
                        .foregroundColor(Color.black)
                }
            }
            .labelsHidden()
            .frame(maxWidth: 50, maxHeight: 50)
            .clipped()

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

我做错了什么?

我使用的是XCode 12。另外,这个界面是为没有运行iOS 14的设备构建的。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-24 23:42:12

所以,我想通了。把.compositingGroup()放在.clipped()之前就行了。如下所示:

代码语言:javascript
复制
            DatePicker("", selection: self.$dateIntervalEnd, displayedComponents: .hourAndMinute)
            .labelsHidden()
            .colorInvert()
            .colorMultiply(Color.black)
            .frame(maxHeight: 50)
            .compositingGroup()
            .clipped()
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64049588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档