我有一个带有自定义TableCellViews的TableView,它具有UILabel和UIButtons。
当粘贴一个按钮时,我想显示一个描述按钮文本的“工具提示”。
除了我尝试将UIButton的中心坐标转换为rootView的坐标(即UIView)外,大多数其他方法都可以正常工作。
这是代码:
- (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];
那应该给你你想要的东西。
关于iphone - convertPoint:toView:似乎不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2428981/