3

外側のタッチアップをトリガーする距離を変更するにはどうすればよいですか? UIButton の touch up outside メソッドは、タッチアップの場所がボタンから約 100 ピクセル離れている場合にのみ起動します。これは、約 100 ピクセルの内側から外側にドラッグするとボタンのハイライトが変更されたことがわかります。距離を縮める方法はありますか?ありがとう!

4

1 に答える 1

1

試していただけますか

- (IBAction)btnDragged:(id)button withEvent:(UIEvent*)event {
    UITouch *t = [[event touchesForView:yourButtonView] anyObject];
    CGPoint touchLocation = [t locationInView:self.view];
    //NSLog(@"%@", NSStringFromCGPoint(touchLocation));

    if (your condition, using CGPoint to check for shorten distance, compare your button location and touchLocation) {
      //fire some stuff
    }
}

お役に立てば幸いです。フィードバックをお寄せください。何が起こっているのかがわかります。コードを編集して、お役に立てれば幸いです:)。

注目すべき: イベントには座標が含まれます

UPDATE:// 以下のコメントに従って、試してみてください。 if 条件では、エンドポイントのクラスの種類を確認する必要があります

ボタンから 50 ピクセル離れた場所に短縮したいと仮定すると、条件はこれに似たものになるはずです。

if ( fabsf(yourButton.frame.x - touchLocation.x) <= 50 && fabsf(yourButton.frame.y - touchLocation.y) <= 50 ) {

    UIView *v = [self.view hitTest:touchLocation withEvent:nil];
    if ([v isKindOfClass:[UIButton class]]) //check that it is button B or not
    {
        //do your stuff
    }
}

それが役立つことを願っています:)

于 2012-11-10T09:04:03.360 に答える