Ios 在子视图中设置多个视图的动画,延迟小于1秒

Ios 在子视图中设置多个视图的动画,延迟小于1秒,ios,uiviewanimation,Ios,Uiviewanimation,刚开始在iOS上使用Obj C,我试图在我的子视图中设置所有视图的动画(UIImageView),但是当我将延迟时间设置为小于1秒时,动画会立即设置所有视图的动画。如果我将延迟设置为1秒或更长,它将正确设置动画,但第二个动画将仅在第一个动画完成后开始。我想将所有这些视图设置为背靠背动画,例如,视图编号1将开始设置动画,在完成之前,第二个视图应开始设置动画 这是我的密码 -(void)animate { int delaytime = 0.3; //first view will star

刚开始在iOS上使用Obj C,我试图在我的子视图中设置所有视图的动画(
UIImageView
),但是当我将延迟时间设置为小于1秒时,动画会立即设置所有视图的动画。如果我将延迟设置为1秒或更长,它将正确设置动画,但第二个动画将仅在第一个动画完成后开始。我想将所有这些视图设置为背靠背动画,例如,视图编号1将开始设置动画,在完成之前,第二个视图应开始设置动画

这是我的密码

-(void)animate
{
    int delaytime = 0.3; //first view will start after 0.3 secs

    for(UIView *view in self.subviews)
    {
        view.alpha = 0; //set it to transparent
        delaytime += 1 ; //couldn't get the desired effect when it is less than 1
        [UIView animateWithDuration:0.3
                              delay:delaytime
                            options: UIViewAnimationOptionTransitionNone
                         animations:^{
                             view.alpha = 1;       // fade in             }
                         completion:^(BOOL finished){
                             NSLog(@"Complete");
                         }]; 
    }
}

延迟变量是一个
int
,因此总是向下舍入为整数值(0.3变为0,甚至0.9999变为0)。这就是为什么所有小于1秒的“延迟”都会立即启动的原因,
int
变量不能保存十进制值

您应该使用正确的类型
NSTimeInterval

NSTimeInterval delaytime = 0.3;

谢谢你,大卫!我真粗心,漏掉了那个细节。它现在工作得很好。