.-- --

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 comment(-) trackback(-)
.30 2009

タッチイベントとビュー階層

Tasaki です。

今回は、タッチ操作によるビューの移動を
実装するにあたっての注意点を述べたいと思います。

タッチイベントは、ビューやそのコントローラの
対応するハンドラメソッド(例えば touchesBegan:withEvent: など)で
取得することが可能な訳ですが、
いくつかのビューを階層化している場合、
スーパービューの領域外にあるサブビューには、
新たなイベントが伝達されません。

つまり、touchesMoved:withEvent:の中で、
指の軌跡に沿ってサブビュー移動させ、
そのままスーパービューの枠外に出してしまうと、
指を放すまではイベントが伝達され続けますが、
次にサブビューをタッチしても、
touchesBegan:withEvent: が呼ばれることはありません。

そこで、このような状況が発生する場合には、
ビューではなく、ビューコントローラのハンドラメソッドで、
イベントの取得を試みる必要があります。
ただし、UITouch オブジェクトの view プロパティは、
触っているはずのサブビューを返してはくれませんので、
自力で、どのビューを触っているのか調べる必要があります。
(これがかなり面倒です…)

また、マルチタッチ機能のオン/オフ、
ユーザーインタラクションのオン/オフなどを制御する場合、
ビュー階層の途中で、1カ所でもオンになっていない場所があると、
そのサブビューもオフ扱いとなってしまいます。

複雑なビュー階層を構築する場合は注意しましょう。



関連記事
スポンサーサイト

Comment

Post comment

  • comment
  • secret
  • 管理者にだけ表示を許可する

Trackback

trackbackURL:http://appteam.blog114.fc2.com/tb.php/25-3afa8c49

ブログ内検索

関連リンク

製品情報

最新記事

カテゴリ

プロフィール

neoxneo



NEXT-SYSTEM iOS Developers Blog


  • UTO:
    カナダ版iPhone4Sは、マナーモードでシャッター音がならない…


  • Ehara:
    ...


  • Hayate:
    ...


  • Tasaki:
    Developer登録完了...したのはいいけど


  • Ueda:
    ...



リンク

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。