2012-05-19 4 views
2

UIView의 drawRect 메서드에서 호출 된 CGContextDrawLinearGradient와 CAGradientLayer 사이의 차이점은 무엇입니까? 성능을 현명하게 비교하는 방법은 무엇입니까? 그라데이션보기를 만드는 가장 좋은 방법은 무엇입니까? 나는 그들이 서로 어떻게 연관되어 있으며 왜 다른 하나보다 더 나은 성능인지에 대한 좋은 설명을 원합니다.CGContextDrawLinearGradient 대 cagradientlayer?

감사합니다.

+0

"그래디언트보기"란 무엇입니까? 그라디언트가있는 일반 상자는 무엇입니까? – jrturton

+0

예. 따라서 layer.colors 메서드 나 CGGradientCreateWithColors 메서드를 사용하십시오. – Stephanie

답변

1

그래디언트가있는 상자를 원한다면 성능은 실제로 문제가되지 않습니다. 특정 요구 사항에 맞게 구현하는 것이 가장 간단한 방법을 선택해야합니다.

CAGradientLayer를 추가하면 뷰 하위 클래스를 만들지 않아도되므로 기존 뷰에 레이어를 추가 할 수 있습니다. 또한 프레임 크기 나 c 스타일 코어 그래픽 기능에 대해 걱정할 필요가 없으므로 설정이 약간 쉬워집니다. 너무 많은 노력없이 둥근 모서리, 그림자 등을 추가 할 수도 있습니다.

그러나 하나 이상의 그래디언트보기가 필요한 경우 새 클래스를 도입 할 수 있도록 서브 클래스가 좋은 아이디어 일 수 있습니다.

불행히도 귀하의 질문에 대한 명확한 답변이 없습니다. 어느 쪽도 분명히 좋지 않습니다. 성능에 관심이있는 경우 두 가지를 구현하고 계측기를 사용하여 테스트하십시오.

+0

감사합니다. 사용하기에 더 좋은 방법이 있는지 궁금합니다. 나는 당신이 제안한대로 더 쉬운 것을 사용하는 것처럼 할 것입니다. – Stephanie