2

UIButton のUIControlEventTouchDragInsideおよびUIControlEventTouchDragOutsideのしきい値が、ボタンのフレームの外側に未知の量だけあるようです。この距離は指の幅くらいのようです。この指幅バッファなしで、このしきい値を実際のフレーム/境界にする方法はありますか?

これは iPad では問題ではありませんでしたが、iPhone と小さな領域では、カスタム コントロールが散発的に機能する原因となっています。

ありがとう

4

1 に答える 1

3

回避策として、私は次のことを行っています。

UIControlEventTouchUpInsideUIControlEventTouchUpOutsideのハンドラを変更しました。

-(IBAction)myButtonsUpInside:(id)sender event:(UIEvent*)event

-(IBAction)myButtonsUpOutside:(id)sender event:(UIEvent*)event

イベントを別のボタンとして処理する必要があるかどうかを最初に確認します。このようなもので:

NSArray* theTouches = [[event allTouches] allObjects];
UITouch* touch = [theTouches objectAtIndex:0];
if([btnMyOtherButton pointInside:[touch locationInView:btnMyOtherButton] withEvent:event])
     //Call myOtherButton's action.
//Otherwise do this button's action.

UIControlEventTouchDragInsideおよびUIControlEventTouchDragOutsideハンドラーで同じことを実行して、同様のことを行うこともできます。修正イベントで発生するアクションのみが必要でした。

この奇妙なバッファを取り除くための他の解決策があるかどうかを知りたいです。

于 2012-11-23T20:26:17.620 に答える