3

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

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

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

为此,我尝试了:

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

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

我没有得到正确的结果。

4

1 回答 1

2

是相对于它的btn.frame(按钮的)超级视图,所以传递不会给出预期的结果,因为self.view它不是按钮的超级视图(在注释标注按钮的情况下)。所以该代码应该是:fromViewself.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];
于 2012-09-10T13:18:06.313 回答