1

我尝试为可变数组中的一系列 UIView 设置动画以模拟此动画

for(int k = 0; k< [imageViewCarrier count] ; k++){
    UIView *transformingView = [imageViewCarrier objectAtIndex:k];
    [UIView animateWithDuration:30.0 animations:^{
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:30.0];
        [UIView setAnimationDelegate:self];
        [UIView transitionFromView:transformingView toView:splicedImageView duration:3 options:UIViewAnimationOptionTransitionFlipFromLeft completion:NULL];
        [UIView commitAnimations];

    }completion:^(BOOL finished){
        NSLog(@"Transition done");
    }];

}

动画似乎太快了。对此有任何建议。确实搜索了一些文档,但无法弄清楚。一些帮助将不胜感激!

4

1 回答 1

0

嗯,我想你可能做错了。如果没记错的话,在使用 时[UIView animinateWithDuration:animiations:completion:],您不应该调用[UIView beginAnimations:nil context:NULL];and[UIView commitAnimations];setAnimationDelegate:or setAnimationDuration:,因为它们是在引入基于块的方法之前必须使用的动画视图的旧方法。

我会尝试将它们排除在外,看看会发生什么。另外,请注意,持续时间参数以秒为单位,所以30.0看起来有点太长了。

只是一个样式说明:迭代集合的“正确”Objective-C方法如下:

for(UIView* view in imageViewCarrier){
   [view doSomething];
}
于 2012-09-06T08:27:23.370 回答