2011-03-08 4 views
0

나는 이미지를 게시 할 수 없습니다,하지만 난 음영 파란색 공 (~ 40 픽셀 직경)을 그립니다 "CGContextDrawRadialGradient"방법을 사용, 그것은 그림자의와 공 주위에 "펄스"화이트 링 (내부 및 외부 그라디언트를 만들기 위해 반지에). 링은 파란 공 가장자리에서 시작하여 바깥쪽으로 확장됩니다 (반경은 타이머와 함께 커짐). 흰색 반지는 전파처럼 바깥쪽으로 펼쳐지면서 희미 해집니다.drawrect에서 "CGContextDrawRadialGradient"를 여러 번 사용하는 가장 좋은 방법은 무엇입니까?

시뮬레이터에 큰 실행을 보이지만 (시뮬레이터로) 링은 두 번째에 대해 펄스해야 아이폰 4에 매우 느리게 실행되지만 전화 15~20초 걸립니다. CALayer, CGLayer 및 일부 그라디언트 애니메이션에서 일부 세그먼트를 읽는 방법에 대해 조금 읽었지만 최고의 성능을 위해 사용해야하는 것은 분명하지 않습니다.

어떻게이 속도를 않습니다. 나는 공을 레이어에 놓고 다른 레이어에 팽창시키는 반지를 넣어야합니까? 그렇다면 드로우 on에서 어떤 레이어를 업데이트해야하는지 어떻게 알 수 있습니까?

는 지침을 주셔서 감사합니다. 감사.

답변

1

그런 일을 가속화 할 수있는 유일한 방법은 그것을 미리 렌더링하는 것입니다. 당신이 잘 보이게 한 다음 CGBitmapContextCreate로 만든 컨텍스트에 각 프레임을 그리고 CGBitmapContextCreateImage를 사용하여 이미지를 캡처 할 필요가 얼마나 많은 이미지 프레임을 결정합니다. 아마 이미지를 애니메이션하는 가장 쉬운 방법은 UIImageView의 animationImages 속성을 설정하는 것입니다 (CALayer 애니메이션과 같은 다른 옵션이 있지만).

최신 Apple 문서는 iOS에서 지원되는 픽셀 형식을 마지막으로 언급하므로 비트 맵 컨텍스트를 만들 때 reference을 확인하십시오.

관련 문제