0

私はiOSを初めて使用します。

クォートコアを使って円を描いたビューがあります。

私はその円の中に1つのUIButtonを置き、そのボタンをドラッグアンドドロップする機能を与えました。

ここで、ボタンをその円の領域からドラッグできないという制約が必要です。

ButtonのTouchDragOutSideイベントは

- (void) draggedOut: (UIControl *) c withEvent: (UIEvent *) ev
{
    if([viewCanvas pointInside:[[[ev allTouches] anyObject] locationInView:viewCanvas ] withEvent:ev])
        c.center = [[[ev allTouches] anyObject] locationInView:viewCanvas ];

}

この時点で、ボタンを長方形の表示領域の外側にドラッグすることはできません。

手伝ってくれてありがとう

4

3 に答える 3

1

これを試して..

if([viewCanvas pointInside:[[[ev allTouches] anyObject] locationInView:viewCanvas ] withEvent:ev])
{
UITouch *touch = [[ev touchesForView:c] anyObject];

CGPoint location = [touch locationInView:c];

if((location.x<(viewCanvas.frame.origin.x+viewCanvas.frame.size.width))&&(location.y<(viewCanvas.frame.origin.y+viewCanvas.frame.size.height)))
{
  c.center = [[[ev allTouches] anyObject] locationInView:viewCanvas ];

}
}
于 2013-03-26T11:08:26.800 に答える
1

この方程式を使って方程式で解を求めました。

(x-center_x)^2 + (y - center_y)^2 < radius^2
于 2013-03-26T11:32:13.250 に答える
0

円と半径の中心(x、y)があります。ボタンの中心を取り、x方向に移動する場合はx+半径-幅/2の内側にあり、ay方向に移動する場合はy+半径-高さ/2の内側にあるかどうかを確認します。4つの方向を確認し、適切な+/-を与えます

于 2013-03-26T13:54:06.660 に答える