0
我正在嘗試使平移手勢識別器內的動畫。但是,當識別器到達屏幕上我想要的位置時,UIStateGestureRecognizerStateEnded會被調用,並且我的動畫不會被正確觸發。這是我如何去做的。我該如何做到這一點,以便我的動畫平滑並且不會中斷手勢識別器的狀態。iOS使用平移手勢識別器添加動畫
-(IBAction)handlePan:(UIPanGestureRecognizer *)recognizer
{
CGPoint translation = [recognizer translationInView:self.view];
recognizer.view.center = CGPointMake(recognizer.view.center.x, recognizer.view.center.y + translation.y);
self.lineView1.center = CGPointMake(self.lineView1.center.x, recognizer.view.center.y + translation.y - 337.5f);
self.lineView2.center = CGPointMake(self.lineView2.center.x, recognizer.view.center.y +translation.y + 337.5f);
[recognizer setTranslation:CGPointMake(0, 0) inView:self.view];
//THIS CODE IS NOT ALLOWING THE ANIMATION TO RUN SMOOTHLY? AND ENDS THE GESTURE'S STATE.
if ((recognizer.view.center.y + translation.y)>300 && (recognizer.view.center.y + translation.y)<345) {
[UIView animateWithDuration:3.5 delay:0 options:UIViewAnimationOptionAllowUserInteraction animations:^{
self.joinHorzConst.constant= 60;
self.joinLabel.alpha = 1;
} completion:^(BOOL finished) {
//completion
}];
}
if (recognizer.state == UIGestureRecognizerStateEnded) {
[UIView animateWithDuration:.35 delay:0 options:UIViewAnimationOptionCurveEaseInOut
animations:^{
recognizer.view.center = CGPointMake(recognizer.view.center.x, 121.5f);
self.lineView1.center = CGPointMake(281, -216);
self.lineView2.center = CGPointMake(281, 459);
} completion:^(BOOL finished) {
[UIView animateWithDuration:.2 animations:^{
recognizer.view.center = CGPointMake(recognizer.view.center.x, 147.5f);
self.lineView1.center = CGPointMake(281, -189);
self.lineView2.center = CGPointMake(281, 486); } completion:^(BOOL finished) {
[UIView animateWithDuration:.1 animations:^{
recognizer.view.center = CGPointMake(recognizer.view.center.x, 141.5f);
self.lineView1.center = CGPointMake(281, -196);
self.lineView2.center = CGPointMake(281, 479);
}];
}];
}];
}
}
在此先感謝!
編輯:究竟我多麼希望我的動畫工作:
用戶拖動識別上下Y軸,像滑塊一樣。當滑塊按鈕達到特定的y軸(300 - 345)時,我希望在其中一個標籤上有一個動畫,它將它向左推動一點,然後將alpha向上。眼下
,滑塊工作正常,直到我達到300-345之間的Y軸,在這一點上我gestureReconizerStatedidEnd被調用和滑塊返回到原來的位置:
它是如何工作現在所需的動畫。我不希望發生這種情況。我希望滑塊可以自由移動,但標籤動畫的發生就像滑塊在300-345尺寸範圍內一樣。
我不確定我明白你想要做什麼,但是不能在狀態爲「Chaged」時連續設置位置? – Linuxios 2015-02-08 18:09:38
我編輯了我的問題,以更清晰地說明我希望動畫如何工作。 @Linuxios – Andy 2015-02-08 18:16:48