我有一个带有自定义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/

10-08 20:50