有什麼方法可以指定動畫的持續時間爲[UIScrollView zoomToRect:zoomRect animated:YES]
?任何更改UITcrollView的zoomToRect持續時間的方法?
目前它或者快速animated:YES
或即時animated:NO
。
我想指定一個持續時間,例如[UIScrollView setAnimationDuration:2]
;或類似的東西。
在此先感謝!
有什麼方法可以指定動畫的持續時間爲[UIScrollView zoomToRect:zoomRect animated:YES]
?任何更改UITcrollView的zoomToRect持續時間的方法?
目前它或者快速animated:YES
或即時animated:NO
。
我想指定一個持續時間,例如[UIScrollView setAnimationDuration:2]
;或類似的東西。
在此先感謝!
使用UIView的動畫。
解釋有點長,所以我希望這個小例子能夠解決一些問題。 看那documantation進一步說明
[UIView beginAnimations: nil context: NULL];
[UIView setAnimationDuration: 2];
[UIView setAnimationDelegate: self];
[UIView setAnimationDidStopSelector: @selector(revertToOriginalDidStop:finished:context:)];
expandedView.frame = prevFrame;
[UIView commitAnimations];
它是從一個項目中,我目前正在所以這是一個有點特殊,但我希望你能看到的基本知識。
我有運氣在一個UIScrollView子類這種方法:
- (void)zoomToRect:(CGRect)rect duration:(NSTimeInterval)duration
{
[self setZoomLimitsForSize:rect.size];
if (duration > 0.0f) {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:duration];
}
[self zoomToRect:rect animated:NO];
if (duration > 0.0f)
[UIView commitAnimations];
[self zoomToRect:rect animated:(duration > 0.0f)];
}
它還挺作弊,但它似乎主要工作。偶爾它會失敗,但我不知道爲什麼。在這種情況下,它只是恢復到默認的動畫速度。
其實這些答案是非常接近我最終使用,但我會單獨發佈我的,因爲它是不同的。基本上,如果目標zoomScale與當前的縮放比例相同,則zoomToRect無法正常工作。
你可以嘗試scrollToRect,但我沒有任何運氣。
取而代之的只是使用contentOffset並將其設置爲zoomRect.origin並嵌套在動畫塊中。
[UIView animateWithDuration:duration
delay:0.f
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
if (sameZoomScale) {
CGFloat offsetX = zoomRect.origin.x * fitScale;
CGFloat offsetY = zoomRect.origin.y * fitScale;
[self.imageScrollView setContentOffset:CGPointMake(offsetX, offsetY)];
}
else {
[self.imageScrollView zoomToRect:zoomRect
animated:NO];
}
}
completion:nil];
我打這個'偶爾會失敗'的情況下,這會導致動畫在默認的持續時間運行。這種情況似乎發生在先前和目標矩形尺寸匹配時,即使通過起源是不同的。這裏是我的新動畫代碼,添加了scrollRectToVisible行,並且我不再遇到這種失敗情況。 [UIView animateWithDuration:2 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^ {scrollView scrollRectToVisible:target animated:NO]; [scrollView zoomToRect:target animated:NO]; } completion:nil]; – fionbio 2013-02-27 01:30:51
乾草它的好處! 它工作正常 謝謝 – 2013-07-10 10:45:21