como posso fazer o onTapGesture funcionar apenas se o usuário tocar no círculo e não dentro de todos os quadros do Círculo no SwiftUI? [duplicado]
Dec 05 2020
Estou usando este código para baixo para ler a torneira do usuário no círculo, o problema aqui é que funciona em todas as partes do frame 100X100, mas espero que funcione apenas no círculo preenchido com cores, como posso resolver esse problema?
struct ContentView: View {
var body: some View {
Circle()
.fill(Color.red)
.frame(width: 100, height: 100, alignment: .center)
.onTapGesture {
print("tap")
}
}
}
Respostas
nicksarno Dec 06 2020 at 04:08
Um pequeno truque legal seria adicionar uma camada de fundo ao círculo (não pode ser 100% claro ou não renderizaria, então fiz opacidade 0,0001, que parece claro) e, em seguida, adicionei outro toque Gesto nessa camada. O novo gesto terá prioridade na área de fundo e podemos apenas deixá-lo sem nenhuma ação para que nada aconteça.
Circle()
.fill(Color.red)
.frame(width: 100, height: 100, alignment: .center)
.background(
Color.black.opacity(0.0001).onTapGesture { }
)
.onTapGesture {
print("tap")
}
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino