2013-12-09 3 views
0

UIView animateWithDuration:delay:options:animations:completion: 메서드를 사용하고 있지만 완료 메서드가 호출되지 않습니다. 여기 내 코드는 다음과 같습니다UIViewAnimateWithDuration 완료가 호출되지 않았습니다.

[UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionAllowUserInteraction animations:^ 
      { 
       //random lines of code 

      }completion:^(BOOL finished){ 
       if (finished) 
       { 
        NSLog(@"FINISHED"); 
       } 
      }]; 

편집 :가 언제가 호출되는 내 animations:에 줄을 주석 ??? !!! - 당신이 연속 동작의 움직임을 애니메이션을 적용 할

CGFloat objectY = object.frame.origin.y; 
objectY += speed; 
object.frame = CGRectMake(object.frame.origin.x, objectY, 75, 75); 
+0

임의의 라인을 주석 처리하면 호출됩니까? 또는 완료 블록에 else 절을 ​​추가하려고 시도 했습니까? –

+0

@MertBuran 예. 왜 그런 일이 일어날까요 ??? –

+0

임의의 줄은 무엇입니까? – Wain

답변

1

내가 추측을 복용하고 있습니다 :

이들은

은 라인입니까? 예인 경우 사용자 상호 작용으로 인해 애니메이션이 끝나지 않습니다.

프레임 만 업데이트하고 UIView 애니메이션은 업데이트하지 마십시오. 잘 작동해야합니다.

+0

여기서 말하는 것은 'UIViewAnimationOptionAllowUserInteraction'을 제거하면 완성이 – bachonk

+0

어쩌면 처리 될 수 있다는 것입니다. 실제 발생 상황을 알려주는 코드가 적습니다. 당신이 만든 UIViewAnimation 괜찮습니다. 방해가되는 뭔가가 있어야합니다. 이 애니메이션의 속도 또는 발생 빈도는 어디에서 오는가? 애니메이션에서 프레임의 원점을 설정하는 것은 거리를 움직이는 것이지만 속도는 움직이는 것이 아닙니다. 속도는 거리를 시간으로 나눈 값이지만, 플로트의 이름을 선택했을 때 염두에 두어야 할 점이 있습니다. 전에 말했듯이, 나는 짐작하고있다. :) –

관련 문제