2012-02-26 4 views
0

주로 내용, 텍스처 및 그림자가있는 일부 뷰를 화면의 다른 부분으로 이동하여 이동해야하는 뷰가 있습니다.drawRect에서 생성 된 내용으로 뷰를 애니메이션 (슬라이딩) :

이러한 텍스처는 drawRect :에서 생성되며 뷰의 수명 동안 한 번만 렌더링하면됩니다 (선택적으로 다시 그릴 때만 제외).

그러나 슬라이드가 약간 엉망입니다. 질감이 다시 그려지므로 이것이라고 생각합니다.

뷰 CALayer를 직접 사용하여 텍스처를 렌더링 할 때 어떤 가치가 있는지 궁금합니다. 이렇게하면 뷰가 움직일 때마다 텍스처가 렌더링되지 않게됩니까?

나는 전에 CALayer를 사용한 적이 없습니다.

감사 칼

답변

0

당신의 drawRect을 무시하고 같은보기를 사용하는 경우, 그것은 모든 시간을 다시 그릴 수 있습니다. 당신이 할 수있는 일은 뷰를 한 번 그리는 메서드를 만드는 것입니다.이 메서드는 한 번 호출됩니다 (init 후에 말합니다). drawRect를 오버라이드하지 마십시오. 성능 문제가 해결되어야합니다.

애니메이션을 할 때 모든보기가 레이어 (CALayer)에 의해 뒷받침되는 경우 애니메이션 중에 뷰 (UIView)를 이동하는 대신 레이어를 이동해야합니다. 뷰 레이어에 액세스하려면 myView.layer를 사용하십시오.

희망이있었습니다.

+0

네, 매우 도움이 되었어요. 감사합니다. –

+0

만족 스럽다면 아무런 문제없이 클릭하면됩니다. :) – Ganzolo

관련 문제