2

iPad用のアプリの書き方を学び始めたところです。私はC、C ++、およびJavaの経験がありますが、ObjectiveCios全般に非常に慣れていません。

画面に数直線を描画するカスタムUIViewがあり、このビューのメソッドをトリガーするいくつかの作業ボタンがあります。

私がやりたいのは、描かれた数直線に触れて、UIViewのメソッドを呼び出すことです。より一般的には、背景をタップするたびに、画面座標を使用してこのメ​​ソッドを呼び出す必要があります。これにより、適切な場所に触れたかどうか、および何をすべきかを判断できます。

私は今何時間も情報を探していて、少し輪になって行きます。私が見る限り、UIViewの代わりにViewControllerにジェスチャ認識コードを追加するのが普通です(私はXcodeに可能な限り自動的に実行させているので、これらのさまざまな部分の非常に基本的な理解しかありません)。

問題は、プログラムのすべての「頭脳」がUIViewにあることです(描画された矢印を数直線上の新しいタップされた場所に移動したい)。しかし、タッチイベントに応答するViewControllerのメソッドがある場合、コントローラー内からUIViewメソッドを呼び出す方法を理解できません。

最も簡単なのは、touchイベントから呼び出されたUIViewサブクラスの直接のメソッドです。

これまでに行ったのは、Xcodeを使用して単一のビューアプリケーションをセットアップし、1つのUIViewサブクラス(FracLineと呼ばれる)を作成して、数直線と矢印を描画することだけです。

ありがとう。

4

1 に答える 1

0

UIResponder (UIView の継承元)のドキュメントを見ると、タッチに関連するメソッドが下部に表示されます。これらのメソッドはすべて、UITouch オブジェクトを含むタッチの NSSet を提供します。UITouchには locationInView: と呼ばれるインスタンス メソッドがあり、CGPoint を使用してどこに触れたかを確認できます。

于 2012-10-19T23:59:52.327 に答える