Sobes.tech
Middle

Como determinar se o utilizador clicou numa camada (layer)?

sobes.tech IA

Resposta da IA

Utilize o método hitTest: no UIView, no qual este camada está incorporada, ou verifique se o ponto de contacto pertence ao quadro da camada usando containsPoint: ou hitTest:.

Exemplo de deteção de toque na camada dentro de touchesBegan:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    guard let touch = touches.first else { return }
    let locationInView = touch.location(in: self.view)
    let locationInLayer = self.view.layer.convert(locationInView, to: myLayer) // Converter o ponto para as coordenadas da camada

    if myLayer.contains(locationInLayer) {
        // O utilizador tocou na myLayer
        print("Camada tocada!")
    }
}