首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在自定义视图中单击listener将触发所有视图

在自定义视图中单击listener将触发所有视图
EN

Stack Overflow用户
提问于 2020-03-11 04:57:29
回答 1查看 160关注 0票数 0

当我单击视图中的单个Chip时,它会触发所有芯片中的操作。例如,如果我点击"Date“芯片,我希望执行self.viewModel.showDateSelection.toggle()。它确实会被执行,但self.viewModel.showTypeSelection.toggle()self.viewModel.showPointsSelection.toggle()也会被执行。我不明白为什么点击一个芯片就会触发所有芯片上的动作。

屏幕

代码语言:javascript
复制
struct EventsScreen: View {

    @EnvironmentObject
    var viewModel: EventsViewModel

    //...

    var body: some View {
        GeometryReader { geometry in
            List {
                ZStack(alignment: .top) {
                    // ...
                    VStack {
                        // ...
                        HStack {
                            Spacer()
                            Chip(text: "Dates", action:  {
                                self.viewModel.showDateSelection.toggle()
                            })
                            Chip(text:"Type", action: {
                                self.viewModel.showTypeSelection.toggle()
                            })
                            Chip(text: "Points", action: {
                                self.viewModel.showPointsSelection.toggle()
                            })
                            Spacer()
                        }
                    }
                }
                // ...
            }
        }
    }
}

芯片

代码语言:javascript
复制
struct Chip: View {
    var text: String
    var action: () -> Void
    var body: some View {
        Button(action: self.action) {
        HStack {
            Text(text).foregroundColor(Color.white)
            Image("drop_down").foregroundColor(Color.white)
        }
        .padding(EdgeInsets.init(top: 4, leading: 16, bottom: 4, trailing: 16))
        .background(Color.black)
    .cornerRadius(40)
        }

    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-11 09:24:23

在一个列表项中有多个按钮在SwiftUI中仍然存在问题

你可以在onTapGesture中使用文本而不是按钮来解决这个问题

请参阅此SwiftUI - Multiple Buttons in a List row

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60625825

复制
相关文章

相似问题

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