2014-12-22 1 views
5

여기 키가 convertRect:toRect 인 것을 알고 있지만 어떻게 호출해야할지 모르겠다. 내 셀의 하위 뷰가 있는데 앱의 전체 창에서 그 위치를 원합니다.전체 창과 관련하여 내 UITableViewCell에서 하위 뷰의 위치를 ​​얻으려면 어떻게해야합니까?

대상 작업 메서드에서이 단추 (하위보기)를 누르면이 사실을 알아야합니다. 올바른 좌표를 얻기 위해 셀에 convertRect:toRect 함수를 호출해야합니다. 그러나이 방법에서는 셀 자체에 대한 참조가 없습니다.

슈퍼 뷰 계층 구조를 등반합니까? 셀의 contentView에 임베디드되어 있기 때문에 내가 얻을 수있는 것을 완전히 확신하지 못하기 때문에 총체적으로 보입니다. Apple은 개인 서브 뷰와 기타 등으로 엉뚱한 일을합니다.

코드 :

@IBAction buttonPressed(sender: UIButton) { 
    // This button got the callback that it was pressed. It's in a cell. I need to convert its rect to that of the window here. I need the coordinate system it's calculated from (the cell) which I'm not sure of how to easily do in a target action callback. 
} 
+0

가능한 복제본 iPhone - 전체 UIWindow 내에서 UIView 위치 가져 오기 (http://stackoverflow.com/questions/1465394/iphone-get-position-of-uiview-within-entire-uiwindow) –

+0

@LyndseyScott 아니요 이것은 셀 하위 뷰의 컨텍스트에서 특정 사례이며 뷰의 참조 뷰를 가져 오는 것이 쉽지 않습니다. –

+1

왜 그렇게 생각하니? –

답변

7

그것은 실제로 매우 간단합니다 : 물론

- (void)someButtonHandler:(id)sender { 
    UIButton *button = sender; 

    // do your stuff 

    CGRect windowRect = [button convertRect:button.bounds toView:nil]; 
} 

그것은 당신의 방법은 설정이 같은 경우에도 쉽게 :

CGRect windowRect = [someSubview convertRect:someSubview.bounds toView:nil]; 

당신이 단추 처리기가 가정 :

- (void)someButtonHandler:(UIButton *)button { 
} 
+0

이 경우'someSubview'를 질문에 어떻게 표시합니까? –

+0

그건 너에게 달렸어. 이미 하위보기가있는 것처럼 질문을하면 소리가납니다. 그렇지 않은 경우 귀하의 질문이 명확하지 않기 때문에 질문을 명확히하십시오. – rmaddy

+0

하위 뷰가 있는데 그 질문을 명확하게 생각했습니다. 하위보기가 셀에 있습니다.서브 뷰에서'convertRect' 코드를 호출하면 좌표계가 포함 된 셀의 관점에서 올바른 결과가 나타나지 않습니다. –

관련 문제