如何在iOS上正确获取控件的绝对坐标?

时间:2017-05-17 17:38:59

标签: c# ios xamarin

我正在使用方法convertRect来获取特定控件的正确绝对帧,但它没有按预期工作。

var convertedRect = _view.ConvertRectToView(_view.Frame, null);

变量convertedRect不会改变原始矩形。我使用这个rec​​t使用绝对坐标在屏幕上绘制一些东西。如果我使用convertedRect,关于工具栏的高度,我的绘图是关闭的...所以我似乎需要找到获得正确的y的方法,该方法考虑了最顶层的屏幕。

代码是c#,因为它是一个Xamarin项目,但问题也适用于swift或objective-c

修改

可能解释我困惑的是以下测试:我在ViewController上执行此操作,期望rect更改,但它不会

var rect = this.View.ConvertRectToView(this.View.Bounds, null);

1 个答案:

答案 0 :(得分:0)

乍一看,我觉得你的代码应该是

var convertedRect = _view.ConvertRectToView(_view.bounds, null);

视图的界限在其自己的坐标系中表示,但该帧在其超视图的坐标系中表示。请注意,由于您为目标视图传递了nil,因此结果应该在窗口坐标系中。