애니메이션을 적용하기 위해 뷰에 50 개의 이미지를 추가하고 싶습니다. 그리고 "UIView"애니메이션보다는 Core Animation (예 : CABasicAnimation)을 사용하려고합니다.iOS : 애니메이션 용 UIView 또는 CALayers를 추가해야합니까?
50 개의 하위 뷰 또는 50 개의 하위 레이어를 추가하여 구현하는 것이 더 좋습니다. 차이가 있습니까?
감사합니다.
애니메이션을 적용하기 위해 뷰에 50 개의 이미지를 추가하고 싶습니다. 그리고 "UIView"애니메이션보다는 Core Animation (예 : CABasicAnimation)을 사용하려고합니다.iOS : 애니메이션 용 UIView 또는 CALayers를 추가해야합니까?
50 개의 하위 뷰 또는 50 개의 하위 레이어를 추가하여 구현하는 것이 더 좋습니다. 차이가 있습니까?
감사합니다.
내가 설명한대로 here, 나는 애니메이션에서 UIViews와 CALayers를 모두 사용했으며 성능 차이는 무시해도 좋았습니다. UIViews는 레이어 주위의 매우 가벼운 래퍼입니다. 또한 필요한 모든 레이어 기반 애니메이션을 UIView의 백업 레이어에 쉽게 적용 할 수 있습니다.
크로스 플랫폼 (Mac/iOS) UI 요소를 만들려는 상황에서 CALayers를 직접 사용했습니다. CALayers는 상당히 다른 NSViews 및 UIView와 달리 두 플랫폼에서의 구현이 거의 동일하기 때문에 직접 사용했습니다. CALayers는 기본적으로 터치 처리 루틴을 가지고 있지 않지만 필요한 경우 해당 기능을 추가 할 수 있습니다.
CoverFlow 효과처럼 레이어의 제한된 3 차원 조작을 시도하거나 CAReplicatorLayer를 사용하여 입자 효과를 생성하는 경우와 같이 레이어를 직접 사용하려는 경우가 있습니다.
UIView에는 하위 레이어가 포함되어있어 무거운 가중치를 가지며 이벤트 및 터치 핸들러/변수와 같은 50 개 이미지 모두에 대해 필요하지 않은 것들을 포함합니다. 따라서 레이어를 사용하면 각 이미지에 대해보기를 사용하는 것보다 약간 더 효율적이고 약간 메모리를 사용하게됩니다.
이렇게 적은 수의 이미지의 차이는 무시할 수 있습니다. 가장 편리한 것을 사용하십시오.
내 실험에서 약 50 개의 이미지가 아이폰 4에서 좀 더듬 거리기 전에 애니메이션이 가능하다는 것을 알았습니다. (이 숫자는 이미지의 크기/크기, 아래의 반투명 레이어 수에 따라 크게 달라질 수 있습니다 애니메이션 이미지 등) –
전화 모델 : D – BallpointBen
애니메이션을 아직 만들지 못했지만, 제가 읽고있는 내용은 모두 50 개의 타일로 된 하나의 이미지를 만들고 그림을 그릴 때 정확한 이미지로 오프셋하는 것이 좋습니다. 그런 식으로 하나의 레이어 또는 UIImage 만 표시하면됩니다. 나는 속도에 관해 모른다. 그러나 나는 그것이 메모리를 절약 할 것이고, 아마 관리하고 코드하기 쉬울 것이라고 생각할 것이다.
일반적으로 "스프라이트"라고하며 OpenGL 애니메이션에도 적용되지만 CoreAnimation에는 실제로 적용되지 않습니다. –
주로 UIView를 사용하여 애니메이션을 실행하거나 액션을 취하는 것이 중요한 경우 UIView 애니메이션을 블록으로 구현하는 것이 훨씬 쉽기 때문에 UIViews를 사용하게되었습니다. (완성 된 블록은 매우 깨끗하고 대리자 인 'animationDidStop'호출은 특별한 경우에 구현할 악몽이 될 것입니다.) –
@Greg - 예, 새로운 블록 기반 UIView 애니메이션은 매우 깨끗합니다. 그러나 CATransaction의 '+ setCompletionBlock :'을 사용하여 CAAnimations와 유사한 블록 완료 콜백을 얻을 수 있습니다.이 콜백은 해당 트랜잭션 내에 래핑 된 모든 애니메이션이 완료 될 때 블록을 실행합니다. 네가 그런 식으로 가고 싶다면 그냥 생각해 봐야 할 것. –