如何获取按钮方面的框架到视图?

时间:2012-09-10 10:48:55

标签: ios uiview mkmapview

我正在创建一个应用程序,需要让按钮的框架相对于视图。

我有一个带注释的mapview。在选择注释时,它会显示标注气泡。这有一个按钮作为右视图。我点击该按钮时会调用一个选择器。

现在我想获得关于视图边界的按钮框架。我想知道按钮在视图中的位置?

为此,我尝试了:

[self.view convertRect:btn.frame fromView:self.view];

[self.view convertRect:btn.frame toView:self.view];

我没有得到正确的结果。

1 个答案:

答案 0 :(得分:2)

btn.frame相对于其(按钮的)超级视图,因此self.view传递fromView将无法获得预期的结果,因为self.view不是按钮的超级view(在注释标注按钮的情况下)。所以代码应该是:

CGRect rect = [self.view convertRect:btn.frame fromView:btn.superview];


类似地,在toView调用中,需要在按钮的超级视图上调用该方法,因为btn.frame是相对于它的(不是self.view):

CGRect rect = [btn.superview convertRect:btn.frame toView:self.view];