0

XCode4.5を使用しています。現在のプロジェクトでは、テキストフィールドに似たUI要素を作成する必要があります。このカスタム要素を多数のViewControllerで再利用する必要があるため、追加する代わりに、XCodeインターフェイスビルダーでドラッグアンドドロップに使用できるように、このカスタムテキストフィールドを構築する方法を探しています。それはプログラム的にのみです(それは私がこれまでに見つけたものです)。

どうすればこれを達成できますか?簡単なサンプルプロジェクトでプロセス全体を説明するチュートリアルを探しています。

仕様:

私が目指している結果は、他のすべての事前定義されたUI要素(テキストフィールドなど)と同じように使用できるカスタムUIViewを持っていることです。つまり、オブジェクトライブラリからストーリーボードのコントローラーにドラッグアンドドロップし、属性インスペクターを使用してその属性、特にカスタム属性を編集し、IBでの変更に関する視覚的なフィードバックを取得できるようにしたいということです。次の2つの理由から、事前定義されたUIViewを何度もサブクラス化したくありません。

  1. まず、カスタムサブクラスを事前定義されたUI要素に追加すると、カスタマイズする必要のあるすべての要素に対してそれを何度も繰り返す必要があるため、より多くの作業が必要になります。多かれ少なかれ、私のアプリの視覚的な部分全体は、クライアントに実装する必要のある特定のデザインに一致するカスタムUI要素のビルドになります。
  2. 次に重要なのは、カスタム機能を保持するサブクラスでUIの外観をカスタマイズして、UIの大部分をプログラムで構築した場合に、UIが最終的にどのように表示されるかを文字通り理解できないことです。
  3. 最後に、実行時にコントローラー部分でプログラムによって変更されることのない静的UI部分を生成することで、iOS SDKが提供する美しいMVC分離を破ることは、悪いコーディング慣行だと思います。

これが、テキストフィールドなどの他の既成のライブラリオブジェクトと同様にUIを設計するプロセスで使用できるカスタムUI要素(対応するクラスUITextFieldCustomと呼びましょう)を設計する必要がある理由です。それは可能ですか?

4

3 に答える 3

2

これには、Interface Builderプラグイン(IBPlugin)が必要です。残念ながら、これのサポートはXcode 4で削除されましたが、Xcode 3には存在します。この機能のドキュメントも、AppleDeveloperLibraryから削除されたようです。IBPluginを使用して実装されたカスタムコントロールの例は、http: //www.brandonwalkin.com/bwtoolkit/にあります。

于 2012-11-16T18:16:28.683 に答える
0

コピーして貼り付け、IBでuiviewを選択してCMD + Cを押し、貼り付けたい他のnibファイルに移動し、空の領域をクリックしてCMD+Vを押すだけです。

于 2012-11-16T17:40:42.557 に答える
0

'titaniumdecoy'が指摘しているように、ここで1つの良い解決策があります。組み込み型をストーリーボード(テキストフィールドなど)にドラッグします。次に、ユーティリティバーのIDインスペクターで、MyTextFieldなどのカスタムクラスを定義します。

于 2013-01-24T08:27:23.543 に答える