2017-05-17 21 views
0

私は方法convertRectを使用して、特定のコントロールの正しい絶対フレームを取得していますが、期待どおりに機能していません。iOSのコントロールの絶対座標を正しく取得する方法は?

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

変数convertedRectは元のrectから何も変更されません。私は絶対座標を使って画面上に何かを描画するためにこのrectを使います。 convertedRectを使用している場合、私の描画はツールバーの高さ程度でオフになっています...そのため、画面の一番上にある正しいyを取得する方法を見つける必要があるようです。それはXamarinのプロジェクトなので

コードは、C#ですが、質問にも迅速またはObjective-Cの

EDITに適用され、私の混乱を説明するかもしれない

何かが、次のテストです:私はこれを実行しますViewControllerに変更することがRECT期待し、それが一目で

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

答えて

0

ないあなたのコードは

012でなければなりませんように、それは私には見えます
var convertedRect = _view.ConvertRectToView(_view.bounds, null); 

ビューの境界はそれ自身の座標系で表されますが、フレームはスーパービューの座標系で表されます。ターゲットビューに対してnilを渡すので、結果はウィンドウ座標系にあるはずです。

+0

ありがとうございました。これを使って '_view.bounds'と同じrectを取得しますが、何も変わりません。これは、私のrectがすでにウィンドウ座標にあることを意味しますか?ビューはルートビューに属しますが、座標が正しくないために何かがオフになっていることが明らかです。私がconvertedRectを使ってスクリーンに描画すると、ツールバーのサイズによって 'y'がオフになります – StackOverflower

関連する問題