我们需要按照一定的时间间隔(默认图像处于隐藏状态=是,并且标签从1111到1120)顺序显示10张图像。代码的结果是立即显示图像,毫不拖延。动画是一个独立的功能。可能是什么问题呢?我使用的Xcode 8.2.1动画无延迟(UIView animateWithDuration延迟)
-(void)doski:(NSInteger)i
{
[UIView animateWithDuration:1.0
delay:5.0
options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction
animations:^(void) {
}
completion:^(BOOL finished) {
[self.view viewWithTag:(i+1110)].hidden=NO;
NSInteger i2=i;
i2++;
if(i2<11)
[self doski:i2];
}];
}
...........
//function call
[self doski:1];
当您使用此选项时,情况并没有改变:
-(void)doski:(NSInteger)i
{
[UIView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut
animations:^(void) {
}
completion:^(BOOL finished){
[UIView animateWithDuration:2.0 delay:1.0 options:
UIViewAnimationOptionCurveEaseIn animations:^{
[self.view viewWithTag:(i+1110)].hidden=NO;
} completion:^ (BOOL completed) {NSInteger i2=i;
i2++;
if(i2<18)
[self doski:i2];}];
}];
}
谢谢。
如果(完成)在完成块中添加,并且您在第一个方法的动画块之外调用[self dosk:1]。这段代码真的很混乱和臭,我会用UICollecitonView去做动画。 –