UIButton
の背景画像を設定し、タイトルを付けました(setBackgroundImage
方法 notを使用しましたsetImage
)。UIButton
今、背景画像を押し出さずに、hitTest 領域を拡張したいと考えています。
これどうやってするの?
UIButton
の背景画像を設定し、タイトルを付けました(setBackgroundImage
方法 notを使用しましたsetImage
)。UIButton
今、背景画像を押し出さずに、hitTest 領域を拡張したいと考えています。
これどうやってするの?
これを行うよりクリーンな方法は、pointInside をオーバーライドすることです。
Swift バージョンは次のとおりです。
override func pointInside(point: CGPoint, withEvent event: UIEvent?) -> Bool {
let expandedBounds = CGRectInset(self.bounds, -15, -15)
return CGRectContainsPoint(expandedBounds, point)
}
さて、UIButton を拡張して、UIView の hitTest メソッドをオーバーライドできます。
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
int expandMargin = 20;
CGRect extendedFrame = CGRectMake(0 - expandMargin , 0 - expandMargin , self.bounds.size.width + (expandMargin * 2) , self.bounds.size.height + (expandMargin * 2));
return (CGRectContainsPoint(extendedFrame , point) == 1) ? self : nil;
}