문제

항목 세트 중 하나를 그릴 수있는 단일 UIView가 있습니다. 즉, 내 하나의 uiview 서브 클래스는 예를 들어 사각형, 원 또는 삼각형을 그릴 수 있습니다.

Uiview가 반대 지점에서 다른 모양을 그릴 수 있도록 해당보기를 뒤집기 위해 전환하고 싶습니다. 전환의 절반 지점.

두 개의 다른 uiviews를 사용하고 애니메이션 블록에서 교환하지 않고이 작업을 수행 할 수있는 방법이 있습니까? 스왑 메커니즘을 사용해야하는 것을 다시 리그하는 것은 약간 서투른 것입니다.

이상적으로 필요한 것은 애니메이션이 반쯤 지점에 있다는 콜백 또는 알림입니다. 그런 다음 새로운 모양으로보기를 다시 그리을 수 있습니다.

도움을 주셔서 감사합니다!

도움이 되었습니까?

해결책

플립 애니메이션의 중간 점을 알고 있더라도, 나는 중간 애니메이션의 내용을 다시 그리는 것이 무엇이든 할 것이라고 믿지 않습니다. 뷰 레이어의 내용은 애니메이션의 시작 부분에 캐시되고 애니메이션이 진행됨에 따라 변경되지 않는다고 생각합니다. 또한, 당신의 견해는 애니메이션 끝에 다른 견해가 없다면 애니메이션 끝에서 왼쪽에서 오른쪽으로 반전됩니다.

이것을 사용자 정의 애니메이션으로하고 싶다면 Mike Lee 's와 같은 것을 사용하여 이것을 두 개의 반으로 나눌 수 있습니다. 레무르 플립 구현 내가 묘사 한 이 답변. 애니메이션의 전반전 후에는보기의 컨텐츠를 다시 작성하고 애니메이션을 완성하여 시작한 곳으로 돌아갈 수 있습니다.

그러나 나에게 전환에 대한 응답으로보기를 전환하지 않는 것이 더 서투른 것 같습니다. 확실히 더 많은 코드가 필요합니다.

다른 팁

당신은 이렇게 smth를 시도 할 수 있습니다. 예를 들어, AnimationDuration 속성은 2.0F로 설정됩니다. 따라서 반대 지점은 1 초이므로 사용할 수 있습니다.

Self PerformSelector : @Selector (YourCallbackMethod)와 함께 : NIL AfterDelay : 1.0f];

내가 이것을 할 수 있다는 유일한 방법은 코어 애니메이션을 사용하여 애니메이션을 다시 만들고 타이머를 사용하여 프레젠테이션 레이어에서 애니메이션을 모니터링하는 것입니다. 핵심 애니메이션 레이어에는 KVO가 없으므로 명시 적으로 모니터링해야합니다.

다시 말해, 아마도 그만한 가치가 없을 것입니다. 문제를 해결하는 다른 방법을 생각하는 것이 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top