일반적인 UIView 클래스 메서드를 사용하여 몇 가지 물건에 애니메이션을 적용하려고합니다. 인기있는 iCarousel 라이브러리에서 호출하는 메서드에서 이러한 애니메이션 메서드를 호출합니다. 캐 러셀을 스크롤하면 애니메이션이 즉시 완료 상태가되어 완료 기능을 호출합니다 (애니메이션의 지속 시간 무시). finished
BOOL이 true이므로 애니메이션이 중단 된 것처럼 보이지 않습니다.코어 애니메이션 완료 함수가 바로 호출됩니다.
iCarousel의 위임 메서드 외부에서 이러한 애니메이션을 트리거하면 작동합니다. 나는 iCarousel을 고치려고하지 않으며, 뭔가 잘못되었다고 생각하지도 않습니다. 좀 더 궁금해서 코드 내부에서 내 애니메이션이 즉시 완료 될 수 있습니다. 그리고 내가 그 문제를 피하기 위해 할 수있는 일.
iCarousel의 문서는 애니메이션과 일부 충돌을 방지하기 위해 회전 목마의 useDisplayLink 속성을 변경할 수 있습니다 언급 :
- (void)carouselCurrentItemIndexDidChange:(iCarousel *)carousel {
[UIView
animateWithDuration:5.0f
delay:0
options:
UIViewAnimationOptionCurveEaseOut |
UIViewAnimationOptionOverrideInheritedDuration |
UIViewAnimationOptionOverrideInheritedCurve
animations:^{
myView.alpha = 0;
}
completion:^(BOOL finished){
NSLog(@"Completed. Did it finish? %i", finished);
}];
}
마지막 세부 :
다음은 예입니다. 이것은 어떤 차이도없는 것처럼 보입니다.
미리 도움을 청하십시오!