문제

UILABELS와 UIBIRTTONS가있는 사용자 정의 식탁보가있는 테이블 뷰가 있습니다. 버튼 중 하나가 녹화되면 버튼의 텍스트를 설명하는 "툴팁"을 표시하고 싶습니다.

Uibiretton의 중앙 좌표를 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를 사용하면 그것이 무엇인지에 가까워 지지만 그것은 단지 해킹 일뿐입니다.

내가 뭘 잘못하고 있는지 보는 사람이 있나요? 아니면 더 좋은 방법이 있습니까?

도움이 되었습니까?

해결책

포인트를 잘못된 관점에서 변환하기 때문입니다. 그만큼 center 속성은 실제로 버튼 슈퍼 뷰의 좌표 시스템에 있으므로 RootView로 변환 할 때 여기에서 변환해야합니다. 그래서:

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

그것은 당신이 찾고있는 것을 당신에게 줄 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top