首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义修改器禁用控件(拾取器和步进器)| SwiftUI

自定义修改器禁用控件(拾取器和步进器)| SwiftUI
EN

Stack Overflow用户
提问于 2020-12-16 05:43:59
回答 1查看 68关注 0票数 1

当我应用自定义修改器.settingBlockModifier()时,它会禁用视图中的控制器。我也尝试过这种方式,.modifier(SettingBlockModifier())。选中后,如果我应用相同的修改器而没有自定义修改器,也会有相同的行为。这是我想要达到的效果。

问题是Picker和Stepper不能工作,它们是不可点击的。如何解决?

代码语言:javascript
复制
struct TestFile: View {
    @State private var gamesAmount = ["5", "10", "20", "30"]
    @State private var game: Int = 1
    
    @State private var number = 1
    
    var body: some View {
        VStack {
            VStack {
                Text("How many questions?")
                    .bold()

                Picker("How many questions?",selection: $game) {
                    ForEach(0..<gamesAmount.count) {
                        Text(gamesAmount[$0])
                    }
                }
                .pickerStyle(SegmentedPickerStyle())
            }
            .settingBlockModifier()
            
            HStack {
                Text("Number:")
                    .padding(.trailing, 40)
                Stepper("\(number)", value: $number, in: 1...10)
            }
            .settingBlockModifier()
            //.modifier(SettingBlockModifier())
        }
    }
}


struct SettingBlockModfier: ViewModifier {
    
    func body(content: Content) -> some View {
        content
            .background(Color.white.cornerRadius(8))
            .shadow(radius: 8)
            .padding()
    }
}

extension View {
    func settingBlockModifier() -> some View {
        self.modifier(SettingBlockModfier())
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-16 05:55:31

您可以使用compositingGroup

代码语言:javascript
复制
struct SettingBlockModfier: ViewModifier {
    func body(content: Content) -> some View {
        content
            .compositingGroup() // <- here
            .background(Color.white.cornerRadius(8))
            .shadow(radius: 8)
            .padding()
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65314134

复制
相关文章

相似问题

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