2013-08-17 19 views
0

我想知道如何實現一個動畫,用戶可以使用他的手指在另一個視圖上滑動一個視圖。爲了簡化,我會張貼一些照片來解釋我的意思。手指控制視圖幻燈片動畫

起初我們有一個視圖,它有一個設置圖標(左上角是粉紅色的東西)。視圖可以通過任何必要的手段進行操縱 - 包括刷卡。見圖1. picture 1

當用戶按下設置按鈕時,視圖滑開並顯示下方的設置視圖。爲此,我只需使用[UIView beginAnimations:nil context:nil]調整主視圖frame並提交動畫。情況似乎是這樣的:(設置爲紫色,主視圖仍然是相同的顏色)

picture2

現在,當用戶決定他想要的主屏幕的背面,他必須抓住它,並將其滑入它的地方。怎麼樣?現在我一直在使用UITapGestureRecognizer這會觸發一個反向動畫,這樣視圖就會回到原來的位置。這很麻煩,用戶仍然可以看到可見的小部分視圖。

我希望視圖能夠跟隨用戶的手指並將其縮放回原位。移動時主視圖不應該是可操縱的。爲了理解我的意思,你可以檢查有類似事情的雅虎天氣應用程序 - 除了我的觀點也會垂直縮小一點。第三圖爲「運動」的東西:

picture3

請提供鏈接或代碼,可以幫助我實現這一目標。
乾杯1月

回答

0

看看這段代碼:

  1. MMDrawerController
  2. MSMatrixController

而且你可以試試這個

-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 

    UITouch *touch = [[touches allObjects] objectAtIndex:0]; 
    CGPoint touchPt = [touch locationInView:self]; 

    float deltaX = touchPt.x - beginPt.x; //where beginPt is CGPoint variable which was set in touches began 
    float deltaY = touchPt.y - beginPt.y; 
    if (deltaX < 0) { 
     deltaX = -deltaX; 
    } 
    if (deltaY < 0) { 
     deltaY = -deltaY; 
    } 

    CGPoint toPt; 
    toPt.x = deltaX; 
    toPt.y = deltaY; 

    yourMovedView.center = toPt; 
}