Sobes.tech
Junior — Middle

Hogyan lehet növelni az aktív elemre kattintás érzékelési területét az interfészen?

sobes.tech MI

Válasz az MI-től

Az iOS-on lévő aktív elem érintési zónájának növeléséhez használhatja a contentEdgeInsets tulajdonságot, vagy ágyazza be az elemet egy átlátszó, nagyobb méretű gombba. Emellett felülírhatja a point(inside:with:) metódust UIView-ben, hogy kiterjessze az érintésekre reagáló területet.

Az érintési zóna bővítésének példája:

class LargerTapAreaButton: UIButton {
    let tapAreaPadding: CGFloat = 20

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