아래 애니메이션을 실행하려고합니다. 모달 뷰 컨트롤러를 죽이고 기본 화면으로 돌아간 직후에 애니메이션이 실행됩니다. UIImageView (activeThumbnail)에 애니메이션을 적용하여 모달 뷰가 화면의 특정 위치로 축소되는 것을 보여줍니다. 애니메이션이 끝나면 알파를 0으로 설정하여 보이지 않는 썸네일을 만든다. 충분히 단순 해 보였고 나는 이런 종류의 애니메이션을 수백 번 사용했다.모달 뷰를 닫은 후의 애니메이션이 작동하지 않습니다.
이번에는 "finished"블록에 알파 변경 라인을 삽입하면 애니메이션이 실행되지 않습니다. 완성 된 블록으로 바로 이동하고 즉시 UIImageView를 희미하게합니다. 흥미롭게도 그 라인을 주석 처리하면 애니메이션이 예상대로 실행됩니다. 언급 된 애니메이션 블록은 다음과 같습니다.
[self dismissViewControllerAnimated:NO completion:nil];
[UIView animateWithDuration:0.4f
delay:0.0f
options: UIViewAnimationOptionCurveEaseInOut
animations:^{
activeThumbnail.frame = CGRectMake(activeThumbnailFrame.x, activeThumbnailFrame.y, 60.0f, 60.0f);
}
completion:^(BOOL finished)
{
//activeThumbnail.image = nil;
//activeThumbnail.alpha = 0.0f;
}];
여기서 누락 된 부분을 지적 해 줄 수 있습니까?
업데이트 : 몇 가지 실험을했고 문제가 모달보기 컨트롤러를 닫는 줄에 있다는 것을 알았습니다. 어떻게 든 애니메이션의 완성 블록과 섞이게됩니다. 내가 별도의 방법으로 내 애니메이션 블록을 이동하고 해산 명령의 완료 블록에서 호출하면 예상대로 실행 :
completion:^{[self animationMethod];}
이의 문제점은 기각 완료 블록에 대해 약 2 초 정도이다 애니메이션이 NO로 설정된 경우에도 선은 발사됩니다. 나는이 문제를 해결하는 방법에 대해 여전히 당황 스럽다. 스토리 보드를 사용하는 경우 당신은 당신이에 속성으로 부모의 ViewController를 설정하여 작업 링크 된 문서의 예를 적용 할 수 있습니다 스토리 보드를 사용하지 않는 경우
바보 같은 질문 : 완성품과 애니메이션 모두에 NSLogs를 추가하여 사실상 순서가 맞지 않았습니까? 그래도 문제가 해결되지는 않지만 문제를 해결하는 데 도움이 될 수 있습니다. –
사실, 나는하지 않았다. 나는 오늘 집에 올 때 시도 할 것이다. –
원래 게시물을 새로운 정보로 업데이트했습니다. 그런데 나는 점검했다. 그리고 그 섹션은 실제로 발화한다. 문제는 모달 관점을 없애는 데 있습니다. –