2012-08-10 1 views
1

은 iOS 용 Obj C를 사용하기 시작 했으므로 모든 하위 뷰 (UIImageView)의 애니메이션을 적용하려고했지만 지연 시간을 1 미만으로 설정했을 때 두 번째로 애니메이션은 모든 뷰를 한 번에 애니메이션으로 만듭니다. 지연을 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"); 
         }]; 
    } 
} 

답변

2

내 지연 변수 (0.3 0이되고, 심지어 0.9999 0이된다)은 int이고 항상 아래 정수 값으로 반올림 그러므로 이다. 이것이 1 초 미만의 모든 "지연"이 즉시 시작되는 이유입니다. int 변수는 십진수 값을 가질 수 없습니다.

대신 우리에게 올바른 유형 NSTimeInterval

NSTimeInterval delaytime = 0.3; 
+0

감사 데이비드해야한다! 나는 그 세부 사항을 놓치고 정말로 부주의했다. 이제 완벽하게 작동합니다. – Kent