2010-03-11 7 views
16

UILABEL 및 UIButton이있는 사용자 정의 TableCellViews가있는 TableView가 있습니다. 단추 중 하나가 녹화 된 경우 단추의 텍스트를 설명하는 "도구 설명"을 표시하려고합니다.convertPoint : toView : 작동하지 않는 것 같습니다.

UIButton의 중심 좌표를 UIView 인 rootView의 좌표로 변환하려고 할 때를 제외하고 대부분 모든 것이 작동합니다.

- (void) fancyLabelButtonPressed: (UIButton *) button { 
    CGPoint btnPoint = button.center; // x=200.5 y=27.5 
    CGPoint rootViewPoint = [button convertPoint:btnPoint toView:rootView]; 
    // rootViewPoint -> x=390.5 y=197.5 
    CGPoint pointToUse = CGPointMake(btnPoint.x +20, rootViewPoint.y - 23); // Hack to get it close 
} 

어떻게 난 rootViewPoint.x=390.5 수 있습니다 세로보기에서 !! : 여기

는 코드? 버튼의 x와 rootViewPoint의 y를 사용하여 나는 그것이 있어야하는 것에 가깝지만, 단지 해킹 일뿐입니다.

내가 뭘 잘못하고 있는지 누가 알 수 있습니까? 또는 더 좋은 방법이 있습니까?

답변

49

잘못된 시점에서 포인트를 변환하기 때문입니다. center 속성은 실제로 단추의 수퍼 뷰 좌표 시스템에 있습니다. 즉, 무엇이든지간에, 당신이 그것을 rootView로 변환 할 때 거기에서 변환해야합니다. 따라서 :

rootViewPoint = [[button superview] convertPoint:btnPoint toView:rootView]; 

그게 당신이 찾고있는 것을 제공합니다.

관련 문제