2009-06-03 5 views
0

저는 Cocoa를 처음 접했지만 CALayer의 좌표계를 변경하는 방법을 알고 싶습니다. Core Animation Programming Guide에서 Layer Geometry and Transforms 문서를 읽었지만 여전히 실질적인 조언이 필요합니다.CALayer 좌표계

기본 좌표계의 왼쪽 하단 구석에 (0,0)이 있습니다. 이것을 레이어 중앙으로 변경하고 싶습니다. 그게 가능하니?

내가 시도한 것 : 레이어의 프레임의 MidX와 MidY에 하위 레이어 변환으로 CATransform3DTranslate를 사용하면 하위 레이어가 올바른 위치에 표시됩니다. 그런 다음 setFrameSize 이벤트에서 변환을 다시 계산하고 다시 적용해야합니다. 차라리 자동 새로 고침 ('단계'제외)을 원합니다.

또는 kCAConstraintMidX를 사용하여 하위 레이어 MidX를 레이어 MidX와 연결하고 오프셋을 사용해야합니까? 사실, 나는 하위 레이어로 CATextLayers를 사용하고 텍스트를 중앙에 정렬하여 텍스트의 중심을 수퍼 레이어의 중심에 상대적으로 배치하려고합니다. 이 시도했지만 슈퍼 레이어 크기를 조정할 때 자동으로 새로 고치지 않는 것.

답변

2

oalTouch라는 Apple 샘플 코드를 확인하십시오.

// Convert the view point to our layer/sound stage coordinate system, which is centered at (0,0) 
CGPoint pointInLayer = CGPointMake(pointInView.x - [self frame].size.width/2., pointInView.y - [self frame].size.height/2.);