2014-05-20 27 views
-2

我有一種觀點,我希望能夠「輕彈」走(如在​​應用程序果凍,Potluck和Weotta中看到的)。我把這個視圖掛在了平移手勢識別器上。問題是它不會「輕彈」(即,如果我從屏幕底部輕彈它,它應該從屏幕的頂部移開,而不必將其一直拖到屏幕的頂部)。我假設這將以某種方式使用UIKitDynamics完成,但我不確定如何實現它。有任何想法嗎?謝謝。彈開視圖

+0

你到目前爲止嘗試過什麼? (除了添加手勢識別器)我們需要查看您的代碼或僞代碼,以便我們知道在哪裏提供幫助。 – random

+0

@random我剛剛完成了平移手勢,並根據其位置 – user3186310

+0

來設置視圖的框架,以便進行正確的輕彈檢測,您最好還是編寫自己的手勢識別器。 /developer.apple.com/library/ios/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/GestureRecognizer_basics/GestureRecognizer_basics.html#//apple_ref/doc/uid/TP40009541-CH2-SW44 .. – lukya

回答

1

有幾種方法可以做到這一點。最簡單的可能只是動畫這樣的觀點:

[UIView beginAnimations:@"flick" context:nil]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; 
[UIView setAnimationDuration:0.5]; 
[UIView setAnimationDelegate:self]; 

yourView.frame = CGRectMake(yourView.frame.origin.x, -yourView.frame.size.height, yourView.frame.size.width, yourView.frame.size.height); 

[UIView commitAnimations]; 

這只是爲您設置的動畫背景,那麼你改變你觀點的起源上面的屏幕上方某處。剩下的就是蘋果。您可以嘗試不同的動畫曲線和持續時間,以查看最佳效果。請查看Apple's docs瞭解您可以爲動畫曲線提供的值。

+0

這段代碼是否會在平底鍋手勢? – user3186310

+0

是的 - 當您對手勢做出迴應時,只需觸發動畫即可完成。你可以嘗試使用touchesBegan/touchesMoved/touchesEnded來讓視圖上下移動,並且只有在向上輕彈時才能輕彈,但這至少可以讓你開始。 –