我正在使用方法convertRect
来获取特定控件的正确绝对帧,但它没有按预期工作。
var convertedRect = _view.ConvertRectToView(_view.Frame, null);
变量convertedRect
不会改变原始矩形。我使用这个rect使用绝对坐标在屏幕上绘制一些东西。如果我使用convertedRect
,关于工具栏的高度,我的绘图是关闭的...所以我似乎需要找到获得正确的y
的方法,该方法考虑了最顶层的屏幕。
代码是c#,因为它是一个Xamarin项目,但问题也适用于swift或objective-c
修改
可能解释我困惑的是以下测试:我在ViewController上执行此操作,期望rect更改,但它不会
var rect = this.View.ConvertRectToView(this.View.Bounds, null);
答案 0 :(得分:0)
乍一看,我觉得你的代码应该是
var convertedRect = _view.ConvertRectToView(_view.bounds, null);
视图的界限在其自己的坐标系中表示,但该帧在其超视图的坐标系中表示。请注意,由于您为目标视图传递了nil,因此结果应该在窗口坐标系中。