私は物事を整理し、私のアプリのビューの階層を作成しようとしています。 たとえば、テキストを表示するカスタムビューを作成し、進行状況を表示するための別のカスタムビューを作成して、ビューベースアプリケーションテンプレートで作成したメインビューでそれらのビューをすべて使用したいとします。Interface BuilderのカスタムUIView
私はプログラムでそれを作成する方法をを知っている - あなたはUIView
サブクラスを作成、のdrawRectメソッドを実装し、Interface Builderで空UIView
を配置し、それが私のカスタムクラスにクラスだチャンス。私の問題は、代わりにこれらのカスタムビューのをInterface Builderで作成したいということです。プログラムではです。
は、これまでのところ私はXIBファイルでUIViewController
コントローラを作成したテンプレートからビューコントローラのviewDidLoad
方法で私は、カスタムビューコントローラのインスタンスことを作成し、(Interface Builderで追加した空UIView
のサブビューとして、それは、ビューの追加しますプログラムのアプローチでクラスを変更する場合も同じです)。
これはうまくいくものですが、私にとってはハックの問題で、viewDidLoad
メソッドを実装せずにインターフェイスビルダでこれらのカスタムビューを追加してコントローラを作成することはできません。そのメソッドの内部にビューを追加します。
うーん..さんは、私は私のプロジェクトでは4 XIBs持っているとしましょう - 2「標準」ビューベースのアプリケーションテンプレートXIBs:MainWindows.xibとTestViewController.xibを。 CustomTextView.xibとCustomProgressView.xib:別のXIBでのすべてのビュー - 今すぐきれいなものを維持するために、私は2つの追加ビューの作成をしたいと思います。 UILabelとUIButtonを最初に追加し、UILabel UIProgressViewを2番目のものに追加します。これらの2つのカスタムビューをTestViewController.xibビューに追加します。どのようにすればいいですか(私がやったやり方とUIViewサブクラスでdrawRectのすべてを描くのではなく、XIBデザインを使用する以外) – shw
私はyou.ifを持っていると思うCustomTextViewとCustomProgressViewはビューまたはそれを拡張する、あなたはメインビューにUIViewを追加する必要があります - exmaple mainWindow-とIDインスペクタ(インスペクタの4番目のタブ)UIViewからクラスを変更する必要がありますクラスをurする(CustomProgressView eg)。 – Ratinho
[OK]を - しかし、そのために、私はUIViewのサブクラスのあるクラスを作成する必要があります - それ以外CustomTextViewは、クラスのフィールドには表示されません。私が作成したCustomTextView.xibファイルとどうすれば接続できますか?私はinitWithCoderメソッドをオーバーライドし、 '[NSBundle loadNibNamed]'メソッドを使ってそのxibをロードし、そのUIViewサブクラスのサブビューとして返す最初のビューを追加しましたが、やはりハッキングのような感じがしています。 – shw