2013-03-26 48 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個方向,並給予適當的+/-