ConversPoint : Toview : 작동하지 않는 것 같습니다
-
19-09-2019 - |
문제
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];
그것은 당신이 찾고있는 것을 당신에게 줄 것입니다.
제휴하지 않습니다 StackOverflow