2012-03-09 2 views
0

CALayer 내에서 CGPoint의 절대 위치를 얻는 방법은 무엇입니까? 나는 정확한 픽셀 그리기 위해CALayer 내부의 점의 절대 위치를 얻는 방법

편집이 필요합니다

+2

당신이 "절대"은 무엇을 의미 뒤? ... 최상위 레이어에 상대적으로, 같은 레이어에있는 픽셀 번호 ... –

답변

3

히트가 반복적으로 superlayers을 테스트 화면으로 절대, 루트 층에 도착할 때까지

CGPoint originalPoint = // wherever from you obtain your original point 
CALayer *layer = self; 
CGPoint point = originalPoint; 
while (layer.superlayer) 
{ 
    point = [layer convertPoint:point toLayer:layer.superlayer]; 
    layer = layer.superlayer; 
} 

// here `point' will contain the exact position 
+1

호기심에서 레이어가 뷰에 연결되어 있다고 가정합니다 (그렇지 않으면 절대 위치 지정을 얻을 수 없음). 루프의 :'[layer convertPoint : point toLayer : view.window.layer]; '? –

+0

똑같은 좋은 해결책. 그러나 그렇습니다. * 레이어에는 연결된보기가 있다고 가정합니다. –

관련 문제