我正在嘗試在UIImageView上創建Ken Burns effect。它首先應該放大(慢),之後,動畫的didStopSelector應該調用一個方法,該方法應該縮小。問題是,只要我不將didStopSelector添加到動畫中,第一個動畫(放大)就可以並且完美地工作。如果我這樣做,似乎直接調用方法(不是在它停止之後)。創建Ken-Burns效果的問題
這裏有2種方法,其中包括動畫:我初始化的UIImageView
- (void)beginKenBurnsEffect {
[UIView beginAnimations:@"a" context:self.view_image];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
[UIView setAnimationDuration:5];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDidStopSelector:@selector(endKenBurnsEffect)];
[UIView setAnimationDelegate:self];
self.view_image.transform = CGAffineTransformScale(self.view_image.transform, 1.06, 1.06);
self.view_image.center = CGPointMake(self.frame.size.width/1.7, self.frame.size.height/2);
[UIView commitAnimations];
}
- (void)endKenBurnsEffect {
[UIView beginAnimations:@"b" context:self.view_image];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
[UIView setAnimationDuration:5];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDidStopSelector:@selector(beginKenBurnsEffect)];
[UIView setAnimationDelegate:self];
self.view_image.transform = self.origTransform;
self.view_image.center = self.origPoint;
[UIView commitAnimations];
}
後,我保存當前變換和中心值的屬性。
self.origTransform = self.view_image.transform;
self.origPoint = self.view_image.center;
我也只有一個動畫和setAnimationAutoReverse試了一下,但動畫完成後,就會放大,在沒有動畫(之後它沒有縮小慢慢動畫)。
也許你有一個想法是什麼問題。
預先感謝您:)
所以這個工作? – nielsbot