2013-03-26 49 views
0

我是新来的ios。不让UIButton拖到圈外

我有一个视图,我用Quartos核心绘制了一个圆。

我已经把一个UIButton放在那个圆圈里,并赋予了DRag的Funcnality并放下那个按钮。

现在我想限制按钮不能被拖出该圈区域。

巴顿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 ]; 

} 

此时按钮不能被拖出矩形查看区域的一侧。

感谢您的帮助

回答

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 ]; 

} 
} 
+0

仍然需要矩形视图不采取圆视图 – Impossible 2013-03-26 11:12:44

+0

那么你应该如何得到矩形的正切和限制按钮到它... – BhushanVU 2013-03-26 11:14:26

1

我不得不用这个公式计算使由方程解。

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

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