2012-09-10 38 views
3

我正在创建一个应用程序,并需要获得按钮的框架尊重视图。如何将按钮方面的框架添加到视图中?

我有一个带有注解的mapview。选择注释时会显示标注泡泡。这有一个按钮作为正确的辅助视图。当我点击那个按钮时,我有一个选择器被调用。

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

对于我试过:

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

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

,我没有得到正确的结果。

回答

2

btn.frame是相对于如此传递self.viewfromView不会产生预期的结果,因为self.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]; 
相关问题