2012-11-05 43 views
1

在我的應用程序中,我有一個小的子視圖,我想在系統右下角連接並允許僅在垂直方向移動固定距離。iOS:可拖動的UIView(僅限垂直)

我有一些代碼,使其能夠被拖動,但沒有進一步的約束:

- (void)viewDragged:(UIPanGestureRecognizer *)gesture 
{ 
    CGPoint translation = [gesture translationInView:keyView]; 

    // move view 
    keyView.center = CGPointMake(keyView.center.x + translation.x, 
          keyView.center.y + translation.y); 
// reset translation 
[gesture setTranslation:CGPointZero inView:keyView]; 
} 

我環顧四周,在計算器上,並試圖一對夫婦的方式,而只是工作的一個都沒有考慮到對角線移動,並且我無法找到任何關於將它綁定到一個點的事情。

那麼有人知道這可以做到嗎?非常感謝

編輯:此外,有沒有人知道這種性質的主題一個很好的,翔實的參考文檔(除蘋果之外)?

回答

1

你可以直接在視圖中添加一行代碼,該代碼表明如果keyview.centre.y小於某個閾值(您希望它停止的位置),則不要將其更改爲低於該閾值。例如。

keyView.centre = CGPointMake(keyView.center.x, 
         keyView.center.y - translation.y < threshold ? threshold : keyView.center.y); 

也刪除對x參數的更改以阻止其沿對角線移動。