不要让UIButton拖到Circle外面

时间:2013-03-26 10:52:24

标签: iphone ios uibutton drag

我是ios的新手。

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

我把一个UIButton放在那个圆圈中,给了DRag的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 ];

}

此时按钮无法拖出矩形视图区域的一侧。

感谢您的帮助

3 个答案:

答案 0 :(得分: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 ];

}
}

答案 1 :(得分:1)

我通过使用这个等式通过等式做出解决方案。

(x-center_x)^2 + (y - center_y)^2 < radius^2

答案 2 :(得分:0)

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