UIView 애니메이션 대 CALayers
UIView의 자체 애니메이션 방법이 아닌 CALayer 로 애니메이션을 개념화하는 데 어려움을 겪고 있습니다. " Core Animation "을 여기에 넣으면 누군가이 개념을 높은 수준에서 명확하게 표현할 수 있으므로 어떤 일이 일어나고 있는지 그리고 왜 UIView 애니메이션을 CALayer로 마이그레이션해야하는지 더 잘 시각화 할 수 있습니다. iPhone의 애니메이션. Cocoa-Touch의 모든보기는 자동으로 레이어를 가져옵니다. 그리고 하나 및 / 또는 다른 하나를 애니메이션 할 수있는 것 같습니다. ?!? 함께 섞어도?!? 그런데 왜? 라인은 어디입니까? 각각의 장단점은 무엇입니까?
Core Animation Programming Guide는 즉시 Layer & Timing Classes로 넘어갑니다. 저는 한 걸음 물러서서 이러한 다양한 조각이 존재하는 이유와 서로 어떻게 관련되는지 이해해야한다고 생각합니다.
컨트롤에는 뷰를 사용하고 눈 사탕에는 레이어를 사용합니다. 레이어는 이벤트를 수신하지 않으므로 이러한 경우보기를 사용하는 것이 더 쉽지만 스프라이트 나 배경 등에 애니메이션을 적용하려면 레이어가 적합합니다. 이벤트는 레이어를 통해 백업 뷰로 바로 전달되므로 이벤트를 엉망으로 만들지 않고도 시각적으로 잘 표현할 수 있습니다. 시각적 표현을 위해 사용중인 뷰를 오버레이하려고하면 탭 이벤트를 기본 뷰로 직접 전달해야합니다.
An UIView
은 항상 CALayer
. 당신이 사용하는 경우 UIView
뷰를 애니메이션 방법을 효과적으로 기본 조작된다 CALayer
.
간단한 일을해야한다면 UIView
방법을 사용하십시오 . 더 복잡한 상황의 경우 또는 특정 뷰와 연관되지 않은 레이어를 원하는 경우 CALayers
.
작년에 많은 앱을 해봤습니다. 내 경험 법칙은 다음과 같습니다.
- 원하는 작업을 수행하지 않을 때까지 UIView를 사용하십시오.
- 그런 다음 CoreAnimation으로 이동하십시오. 하지만 너무 많이 들어가기 전에 ...
- 애니메이션을 몇 개 이상 작성하는 경우 Cocos2D를 사용하십시오.
UIView 변환은 2D로 제한되며, LAyer 변환은 3D 일 수 있으며 3D 작업을 수행하려는 경우 사용해야하며 UIView 변환 또는 CALayer 변환을 변경하면 UIView 애니메이션이 작동합니다. 따라서 기본 수준에서 뷰가 아닌 레이어로 작업 할 때 더 많은 조작을 수행 할 수 있습니다.
"Cocos2D가 더 잘하고있는 것은 무엇입니까? 터치 이벤트 처리 및 openGL ES에서 놓친 다른 많은 것들에 관한 다른 문제가 있습니까?"에 대한 Chris의 응답을 오해하고 있는지 잘 모르겠습니다.
대답은 Cocos2D가 실제로 실제로는 OpenGL ES 프레임 워크를 기반으로하지 않는다는 것을 암시하는 것처럼 들립니다. 훌륭한 2D 게임 엔진이지만 많은 렌더링을 위해 OpenGL을 구현합니다. 물리 라이브러리에 첨부되어 애니메이션에 대해 매우 흥미로운 가능성을 많이 허용합니다. Chris가 맞습니다. 실제로 코딩이 훨씬 적습니다.
참고 URL : https://stackoverflow.com/questions/1139737/uiview-animation-vs-calayers
'Program Tip' 카테고리의 다른 글
Redis : 키의 데이터베이스 크기 / 크기 표시 (0) | 2020.10.20 |
---|---|
IList 또는 List를 사용하는 이유는 무엇입니까? (0) | 2020.10.20 |
ILookup 인터페이스 대 IDictionary (0) | 2020.10.19 |
Javascript 함수에서 매개 변수를 전달하지 않으면 어떻게됩니까? (0) | 2020.10.19 |
파일 포인터에서 파일 이름 가져 오기 (0) | 2020.10.19 |