【问题标题】:iOS: convertRect:toView: doesn't work as I expectiOS:convertRect:toView:不像我预期的那样工作
【发布时间】:2011-06-07 07:31:32
【问题描述】:

我想要相对于主窗口的坐标,因此我使用 convertRect:toView: 和 nil 作为第二个参数:

CGRect result = [self.view convertRect:addToList.frame toView:nil];

但结果,我总是得到

NSRect: {{5, 30}, {35, 35}}

这正是我用于生成 addToList-view 的值:

addToList = [UIButton buttonWithType:UIButtonTypeCustom];
addToList.frame = CGRectMake(5.0f, 30.0f, 35.0f, 35.0f);

如果我将 addToList 按钮添加到位于屏幕右下角的视图中,我希望在 iPad 横向上使用 CGRect,例如 950、700、35、35,因为这些是按钮相对于最顶层视图的坐标。

首先,我在 UIViewController 的 initWithFrame:-method 中进行了转换;但是现在,我在做之后......我错过了什么?

谢谢!

编辑:“self.view”在 UIScrollView 中重要吗?

【问题讨论】:

    标签: ios frame cgrect


    【解决方案1】:

    如果您查看convertRect:toView: 的文档,您会看到您传递的矩形被定义为在您调用该方法的视图的范围内。由于self.view 可能占据了整个窗口,因此矩形不会相对于窗口发生变化。您应该向按钮的父级发送消息,以获取按钮 w.r.t 窗口的实际位置。

    【讨论】:

    • 不幸的是,事实并非如此。 self.view 是一个视图,它本身只在右下角。它嵌套得很深......
    猜你喜欢
    • 2012-06-13
    • 2018-11-19
    • 1970-01-01
    • 2016-03-07
    • 2014-05-16
    • 1970-01-01
    • 2022-01-11
    • 2012-07-13
    • 1970-01-01
    相关资源
    最近更新 更多