Ничего не произошло, когда коснитесь пустого места элемента списка, почему? - PullRequest
0 голосов
/ 18 февраля 2020

Я просто хочу что-то сделать, когда я касаюсь повсюду элемента списка.

Это нормально, когда нажимаю на текст элемента (), но когда я нажимаю на пустое пространство элемента, ничего не происходит, почему?

struct ItemView: View {
    var body: some View {
        HStack {
            Text("Hello")
            Spacer()
            Text("world")
        }
    }
}

struct ListView: View {
    var body: some View {
        List() {
            ForEach((1...10).reversed(), id: \.self) { index in
                ItemView().onTapGesture {
                    print("item \(index) taped")
                }
            }
        }
    }
}

- = - = - =
Я провожу некоторые эксперименты, они такие странные !!!
печатать "привет", если нажать на текст "привет";
печатать "мир" если коснитесь пустого места;
напечатайте «элемент 0», коснитесь, если коснитесь Текстовый мир;

struct ItemView: View {
    var body: some View {
        HStack {
            Text("Hello").onTapGesture {
                print("hello tapped")
            }
            Spacer()
            Button(action: {
                print("world tapped")
            }) {
                Text("world")
            }
        }
    }
}

struct ListView: View {
    var body: some View {
        List() {
            ForEach((1...10).reversed(), id: \.self) { index in
                ItemView().onTapGesture {
                    print("item \(index) taped")
                }
            }
        }
    }
}

1 Ответ

1 голос
/ 18 февраля 2020

Добавьте модификатор фона к вашему ItemView с непрозрачностью

struct ContentView: View {
    var body: some View {
        List() {
            ForEach((1...10).reversed(), id: \.self) { index in
                ItemView()
                    .background(Color.gray.opacity(0.001))
                    .onTapGesture {
                    print("item \(index) taped")
                }
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...