[Swift] UIButtonのタップエリアを広くする

画像を表示させたUIButtonの画像の表示サイズはそのままでタップを検知する範囲を広げたい

btnという横幅40px,縦幅40pxのボタンがあったとするBiggerButtonを作成する。

var frame = CGRectMake(0,0,40,40)
var btn = BiggerButton(frame: frame)

このbtnのタップを検知する範囲を横幅60px,縦幅60pxに拡大させる。


extension BiggerButton {
  override public func pointInside(point: CGPoint, withEvent event: UIEvent?) -> Bool {
    let relativeFrame = self.bounds
    let hitTestEdgeInsets = UIEdgeInsetsMake(-60, -60, -60, -60)
    let hitFrame = UIEdgeInsetsInsetRect(relativeFrame, hitTestEdgeInsets)
    return CGRectContainsPoint(hitFrame, point)
  }
}

Related Contents

Pickup Contents