2
내 사용자 지정 컨트롤에 animated
플래그가있는 -setValue : animated : 메서드가 있습니다.블록 기반 UIView 애니메이션을 "선택"하는 방법은 무엇입니까?
아이폰 OS 4 전에, 나는 이렇게 애니메이션을 쓴 것 :
[UIView animateWithDuration:(animated ? 5.0 : 0.0) animations:^{
// ... layout views ...
}];
:하지만이 리드 애니메이션없는 몇 가지 요소에
if (animated) {
[UIView beginAnimations:@"Foo"];
[UIView setAnimationDuration:5.0];
}
// ... layout views ...
if (animated) {
[UIView commitAnimations];
}
지금 내가 쓴!
이 메서드를 한 번 이상 (애니메이션을 처음 사용하지 않고 두 번째) 호출하므로 애니메이션을 두 번째로 지운 시간이 취소되어 새 프레임이 애니메이션없이 "하드"로 설정됩니다.
블록 접근 방식으로 선택적 애니메이션을 구현하는 방법은 무엇입니까?
D 'oh, 너무 간단! :-) 감사! –
좋은데 ... 왜 애니메이션은 0의 애니메이션 기간을 지나칠 때 애플이하지 않습니까? (나는 알고있다. 아마 여기 아무도 대답 할 수 없을 것이다. 단지 벤트 (venting).) –
@GregMaletic sort of. 그러나 애니메이션 블록이 실행될 때 시스템이 처리하므로 항상 원하는 결과를 얻지 못할 수 있습니다. AnimateWithDuration : animation : completion : 너무 늦게 완성 블록을 호출하는 경우를 보았습니다. 완료 블록을 저장하고 else 절에서 호출하면 (위와 같이) 나를 위해 그것을 고쳤다. –