2011-07-12 13 views
7

私はUIControlサブクラスを作成しており、プログラム内ですべてをレイアウトしています。今度はそれを作り上げました。私はそれをさまざまな画面に何度も配置する必要があります。私はあなたがiOS用のIBプラグインを作ることができないことは知っていますが、IBでUIViewを撮り、サイズを調整する方法はありません。私のコントロールがあるべき場所に配置し、 'カスタムクラス'プロパティをUIControlのサブクラス?私はそれが実際にIBにあるように見えることはわかりませんが、少なくともこれはスクリーン上の他のものと比較して全体的なサイズと配置を設定することができます。また、私のviewControllerでIBOutletsを作成し、IBのビューを適切に接続しました。しかし、実行時に私はカスタマイズを見ることができず、initWithFrame:またはloadViewにブレークポイントを設定すると、自分のコードが呼び出されることはありません。私はこれをどのようにしなければならないのですか?iOS用のカスタムUIControlサブクラスの設定位置

+0

どのバージョンのIB/Xcodeをお使いですか? – bshirley

+0

'initWithCoder:'は、オブジェクトがペン先からロードされたときに呼び出されますが、代わりに 'awakeFromNib'を代入することができます – bshirley

+0

Xcode 4.0.1を使用します。 @bshirley私はそれが当てはまると思ったので、どちらの場合でも呼び出されるはずの 'loadView'にもブレークポイントを設定しました。 – jamone

答えて

10

UIViewをnibファイルにドラッグし、IDインスペクタ(command-opt-3)を使用して、クラスをUIViewの任意のサブクラスに変更することができます。

ではないinitWithFrame:のように、呼び出されたときに呼び出される初期化コードでサブクラスを設定する必要があります。完全性をコーディングする場合、両方のメソッド(プログラマチックベースとペン先ベース)は同じ初期化を呼び出す必要があります。

ご希望の場合は、addSubview:を初期化コードに作成してから、カスタムサブビューのレイアウトにlayoutSubviewsを実装してください。このビューは、最初にビューのサイズが変更されるといつでも呼び出されます。

+0

私はばかです。 'loadView'は' UIView'のメソッドではなく 'UIViewController'のメソッドです。それ以外の場合は、私はそれをちょうどこの方法で持っていた – jamone

+1

ドゥー - それは問題になるだろう=) – bshirley

関連する問題