-[UITouch locationInView:] の座標

2010年9月15日水曜日 | Published in | 0 コメント

このエントリーをはてなブックマークに追加

locationInView: の引数に安易に nil を渡していたら画面回転時に痛い目にあったのでメモしておく。

タッチ位置の座標系

-[UITouch locationInView:] の引数を nil とすると Windowの座標系でタッチ位置が取得できる。

[参考情報] UITouch Class Reference より引用:

Parameters
view
The view object in whose coordinate system you want the touch located. A custom view that is handling the touch may specify self to get the touch location in its own coordinate system. Pass nil to get the touch location in the window’s coordinates.


Windowの座標系はデバイスの向きに依存する。こんな感じ。
横向きにすると...
左下が原点になる(デバイスとして見ればあくまでも左上)。


明示的にビューを指定すれば原点は常に左上となる。

画面を回転しても原点位置は変わらない。


結論


-[UITouch locationInView:]の引数は nil とせず、通常はきちんとタッチ対象のビューを指定するのが良い。

Responses

Leave a Response

人気の投稿(過去 30日間)