2

さて、質問はやや修辞的です。:-)答えは「彼らがそのように設計したから」であることは知っていますが、それでも...

私は iOS 開発を学んでいて、ウィジェット (別名 View/UIView) をイベントに応答させるさまざまな方法につまずいていることに気づきました。これまでのところ、私は見つけました:

  • IBアクション
  • IBアウトレット
  • デリゲート
  • addTarget:action:forControlEvents:
  • ジェスチャ レコグナイザ
  • 通知

(... Interface Builder がこれらの手法の一部をサポートしていることは言うまでもありませんが、すべてをサポートしているわけではなく、サポートしているものでさえ、常に機能するとは限らないか、魔法のように表示される前にカスタム コーディングが必要です。)

  1. 他に見逃した人はいますか?

  2. 特定のウィジェットでどの手法を使用するかを合理的かつアプリオリに判断する方法はありますか?

  3. どのウィジェットがどのケースをサポートするかをまとめたリストはありますか? それとも、ドキュメント、サンプル コード、当て推量を組み合わせて学習する必要がありますか?

4

2 に答える 2

2

そのリストにあるものはすべて異なる目的を持っており、研究とともに iOS 開発を理解するだけで、それらに慣れることができます。たとえば、IBAction は Interface Builder を介してイベントに接続し、IBOutlet は Interface Builder の UI 要素に接続しています。あなたの質問に対する完全な回答は、実際には長いチュートリアルです。

于 2013-02-06T20:11:52.213 に答える
0

この答えで。いくつかのルールを見つけ次第、リストアップしてみます。(たぶん、コミュニティ wiki にします。)

  • Communicating With Objectsガイドでは、アウトレット、デリゲート、データ ソース、IBActions (別名「ターゲット アクション メカニズム」)、および通知 (その他)について説明してNSNotificationCenter います。
  • どうやら各コントロールは、コントロールを押しながらドラッグしたときにフックされるユーザーイベントを決定しますがIBAction(通常は内部をタッチアップします)、接続インスペクターを開くと、イベントの長いリストから選択して、それらのいずれかをIBActionメソッドにフックできます。 .
  • addTarget:action:forControlEvents:は で定義されてUIControlいます。これは、ボタンとスライダー用であり、テーブルやツールバー用ではないことを意味します。
于 2013-02-06T21:15:00.030 に答える