2012-10-29 4 views
2

패턴 이미지 (그림자가있는 빨간색 텍스처)가 있습니다. 이 코드colorWithPatternImage 및 colorWithPatternImage.CGColor Flip

view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"myPattern.png"]]; 

는 OK, 그리고 그림자가 바닥에를 사용합니다. 그러나 내가 사용할 때

view.layer.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"subscribe-pattern.png"]].CGColor; 

그것은 문제 다. 이미지가 플립됩니다 (그림자가 위에 있음). 이 문제를 어떻게 해결할 수 있습니까? 두 번째 방법을 사용하여 unflipped 이미지가 필요합니다.

+0

핵심 그래픽의 원점은 왼쪽 하단에 있으며, 왼쪽 상단에 원점이있는 iOS와 비교됩니다. – bobnoble

+0

가능한 복제본 [CALayer - backgroundColor flipped?] (http://stackoverflow.com/questions/5604531/calayer-backgroundcolor-flipped) – zxcat

답변

5

bobnoble은 자신의 의견에서 Core Graphics와 iOS가 기원을 뒤집어 버렸습니다. iOS는 화면의 왼쪽 상단에서 시작하고 Core Graphics는 왼쪽 하단에서 시작됩니다.

뷰의 레이어 속성에 액세스하면 코어 그래픽 수준으로 떨어집니다. 당신이 그 수준까지 내려야한다면, 거꾸로 일해야합니다. 쉬운 수정은 패턴을 미리 뒤집는 것입니다. 그래픽 편집기에서 역순으로 저장하면됩니다. UI와 CG 레벨에서 동일한 이미지를 사용해야하는 경우에는 항상 두 가지 버전을 저장할 수 있습니다.

코드에서 거꾸로 된 이미지를 그리기 전에 CG 레이어를 뒤집고 번역 한 다음 레이어를 이전 상태로 되돌려서 다시 그리기 할 수 있습니다. 다소 복잡하지만 많은 Core Graphics 튜토리얼로 잘 설명됩니다.