0

これに似た質問がいくつかあることは知っていますが、それらのほとんどが現在のIB / iOSで機能しないか、完全ではないことがわかりました。

ペン先のあるカスタムUIViewが欲しいのですが、これをhooked up正しく取得できません。私はデバッグに数時間を費やし、SOに行きました(そして多分浴槽に座っています)。これが簡単な操作だと感じた場合は、事前にお詫び申し上げます。助けが必要な場合は事前にthx。

現在これを行うために、私は:

  1. カスタムビューファイルを作成します。[ファイル]->[新規]->[ファイル]->[Objective-Cクラス]を選択し、UIViewのタイプを選択してMyViewという名前を付けます。MyView.hとMyView.mが作成されます
  2. カスタムビューnibを作成します。[ファイル]->[新規]->[ファイル]->[ユーザーインターフェイス]->[表示]と名前を付けます。cool.xibが作成されます
  3. cool.xibのIBで、Identity Inspectorに移動し、UIView->MyViewからカスタムクラスを設定します。質問#1-この時点で、MyViewは、インスタンス化されたときにcool.xibをロードすることを知っていますか、それともさらに実行する必要がありますか?
  4. また、IBでは、ファイルの所有者を強調表示し、そのカスタムクラスをMyViewに設定します。(?-これについてはよくわかりません)
  5. テキストラベルを作成したいので、UILabelをcool.xibにドラッグして、MyView.hにパブリックプロパティ(myLabel)を作成します。質問#2このためのカスタムクラスをMyViewに設定する必要がありますか?これは単なる標準のUILabelであるため、私はそうは思わないでしょう。
  6. シングルビューアプリケーションがあり、その上にMyView / coolのインスタンスが必要なので、IBで、オブジェクトインスペクターからViewController.xibビューにビューをドラッグします。IB Identity Inspectorで、クラスをMyViewに設定しました。MyView.hファイルをViewController.hにインポートし、インターフェイスでそのプロパティを設定します。
  7. ViewController.mのviewDidLoadで、背景色をオレンジ色に設定し、myLabelを設定しました(Xcodeによって入力されているため、少し機能しているようです)。

アプリを実行し、backgroundColorがオレンジに設定されていますが、ラベルがなく、なぜそうしないのか混乱していますか?上記の手順のいずれかが正しくありませんか?

事前にt​​hx

4

1 に答える 1

1

cool.xibのIBで、Identity Inspectorに移動し、UIView->MyViewからカスタムクラスを設定します。質問#1-この時点で、MyViewは、インスタンス化されたときにcool.xibをロードすることを知っていますか、それともさらに実行する必要がありますか?

XIBがそのクラスによって管理されていることを認識しています。しかし、それを使用するには、さらに多くのことを行う必要があります。

4番目の質問をスキップします。これはUIViewController、ファイルの所有者と一緒に、誰が責任を負うかを定義する場合に機能します。

テキストラベルを作成したいので、UILabelをcool.xibにドラッグして、MyView.hにパブリックプロパティ(myLabel)を作成します。質問#2このためのカスタムクラスをMyViewに設定する必要がありますか?これは単なる標準のUILabelであるため、私はそうは思わないでしょう。

からそのUILabelにアクセスできるようにする場合MyViewは、にIBOutletを作成MyViewし、ルートUIView(のサブクラスMyView)からにリンクする必要がありますUILabel。この場合、ファイルの所有者には触れません。

最後にこれを確認してください。カスタムビューを正しくロードするために=> nibからカスタムUIViewをロードすると、nibに含まれるすべてのサブビューはnilになりますか?

于 2013-03-04T07:33:27.617 に答える