当我应用自定义修改器.settingBlockModifier()时,它会禁用视图中的控制器。我也尝试过这种方式,.modifier(SettingBlockModifier())。选中后,如果我应用相同的修改器而没有自定义修改器,也会有相同的行为。这是我想要达到的效果。
问题是Picker和Stepper不能工作,它们是不可点击的。如何解决?

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())
}
}发布于 2020-12-16 05:55:31
您可以使用compositingGroup
struct SettingBlockModfier: ViewModifier {
func body(content: Content) -> some View {
content
.compositingGroup() // <- here
.background(Color.white.cornerRadius(8))
.shadow(radius: 8)
.padding()
}
}https://stackoverflow.com/questions/65314134
复制相似问题