Sobes.tech
Junior — Middle

Como é que se podem definir limites para o tratamento de toques num elemento UIView?

sobes.tech IA

Resposta da IA

Para definir os limites de deteção de toques numa UIView, pode sobrescrever o método point(inside:with:). Este método determina se o ponto de toque está dentro da área onde o UIView deve responder aos toques. Por padrão, verifica se o ponto está dentro dos limites (bounds).

Exemplo de sobrescrita para ampliar a área de toque em 20 pontos ao redor da view:

override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
    let margin: CGFloat = 20
    let largerBounds = bounds.insetBy(dx: -margin, dy: -margin)
    return largerBounds.contains(point)
}

Assim, pode-se diminuir ou aumentar a área que responde aos toques, definindo os seus próprios limites.