2010-07-23 7 views
2

모두 즐거운 하루 되세요.iOS 4의 CALayer 또는 UIView backgroundColor UIImage

이 문제를 방지하기 위해 무엇이 변경되었는지 확실하지 않습니다. 아이폰 OS 3 SDK에서 다음 코드는 CATiledLayer 클래스에서 잘 작동 :

- (void)drawInContext:(CGContextRef)context { 
    UIImage* image = [[ResourcesManager sharedResourcesManager] getUIImageFromArray:Image_Cell_Background Index:[mazeCell zone]]; 
    UIColor* color = [[UIColor alloc] initWithPatternImage:image]; 

    [self setBackgroundColor:[color CGColor]]; 
    [color release];  

그러나, 아이폰 OS 4 용으로 컴파일 및 시뮬레이터에서 실행하면 이미지를 렌더링하는 데 실패합니다. 특히 하위 레이어로 추가 된 이미지가 잘 렌더링되기 때문에 당황 스럽습니다. 배경 만 렌더링되지 않습니다.

답변

2

나는 이것에 며칠을 보내고 난 후에 OK의 해결안을 찾았다.

먼저 UIView에서이 작업을 시도했지만 여전히 동일한 문제가있었습니다. 그런 다음 backgroundColor 속성을 가진 다른 유형의 GUI 구성 요소를 시도했습니다.

이들 모두 동일한 문제가 발생했습니다. 내가 알 수 있듯이 이것은 버그이거나 HD 또는 SD 그래픽을 사용할지 여부를 해석하는 새로운 이미지로드/캐싱 프로세스와 관련이 있습니다.

기본적으로, 배경 이미지를 하위보기 또는 하위 레이어로로드하고 (구현에 따라 다름) 뒤쪽 (계층의 맨 아래)으로 보내거나 다른 하위보기/하위 레이어보다 먼저로드해야합니다.

아마 IOS 3의 backgournd 이미지는 뷰/레이어 내에서이 작업을 수행하며 Apple은 배경 이미지와 하위보기/하위 레이어를 이중 처리하고 지원을 제거하지 않기로 결정했을 것입니다.

그러나 최소한 배경을 색상 또는 투명 색상으로 설정할 수 있습니다. 나는 이것을 확인했다.

어쨌든 사과가 결정을 내린 이유에 대해 사과가 설명하거나 SDK를 수정하여 해결할 때까지이 해결 방법을 사용하십시오. 나는 사과 개발자 포럼에서이 문제에 관해 무엇을 말했는지 배우고 싶다 (나는 그것이 제기 된 것이 확실하다). 나는 여전히 프로그램의 일부가 아니며 아직 알파 단계에 있으며 일단 베타 테스트를 받으면 등록 할 것입니다.

관련 문제