UIButtonのタッチ領域を減らしようとしています。それも可能ですか?ユーザーがボタンをタッチしてボタンの外側にドラッグすると、ボタンのグラフィックが終了するとすぐにタッチイベントが停止します。残念ながら、この領域は実際のグラフィックよりもはるかに大きくなっています。面積を大きくする方法についてはたくさん見つけましたが、小さくする方法については知りませんでした。
ご協力いただきありがとうございます。
UIButtonのタッチ領域を減らしようとしています。それも可能ですか?ユーザーがボタンをタッチしてボタンの外側にドラッグすると、ボタンのグラフィックが終了するとすぐにタッチイベントが停止します。残念ながら、この領域は実際のグラフィックよりもはるかに大きくなっています。面積を大きくする方法についてはたくさん見つけましたが、小さくする方法については知りませんでした。
ご協力いただきありがとうございます。
1つの解決策を思いつきました。ボタンの外側にある場合に終了するタッチを認識するように、サブクラス化UIButton
してオーバーライドできます。touchesMoved:
これが私のスニペットです。
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch * touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:self];
if(!CGRectContainsPoint(self.bounds, touchPoint))
{
[super touchesEnded:touches withEvent:event];
}
else
{
[super touchesMoved:touches withEvent:event];
}
}
これの欠点は、ボタンから出て再び戻ってくると、ボタンがアクティブにならないことです。しかし、それ以外の場合は、うまくいくはずだと思います。