0

我是ios新手。

我有一个视图,其中我使用 Quarts 核心画了一个圆圈。

我在那个圈子里放了一个 UIButton 并给了 Funcnality 以拖放那个按钮。

现在我想要约束按钮不能被拖出那个圆圈区域。

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

我已经使用这个方程通过方程求解。

(x-center_x)^2 + (y - center_y)^2 < radius^2
于 2013-03-26T11:32:13.250 回答
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 回答
0

你有圆心(x,y)和半径。取按钮的中心并检查它是否在 x+ 半径 - 宽度/2 内,如果它在 x 方向移动,y+ 半径 - 高度/2 如果它在 y 方向移动。检查 4 个方向并给出正确的 + / -

于 2013-03-26T13:54:06.660 回答