2011-01-09 11 views
1

私はドロップダウンボタンクラスの種類を開発しました。IBまたはサブクラスUIViewを使用する必要があります

これをDDButtonとしましょう。

-(void) addButtonWithImage:(UIImage*)image andTarget:(id)target andSelector:(SEL)selector 

ユーザーがドロップダウンに別のボタンを追加することができます: 私は主に一つの関数をエクスポートします。

私のアプリの別の画面でDDButtonを使用する必要があります。

私が好きそれを使用したいと思います:

DDButton* ddb = [[DDButton alloc] initWithFrame:rect]; 
[ddb addButtonWithImage....] 
[ddb addButtonWithImage....] 

私はどのように私はそれを実装する必要があり前のUIViewをサブクラス化したことがないので、私の質問は、どのように私は後でそれを使用する必要がありますか?

私はIBを使用し、アイデンティティペインのDDButtonに接続するスタブUIViewを作成しますか?もしそうなら、後ほどビューをどのようにインスタンス化するか正確に。

または UIViewをサブクラス化しますか?もしそうなら、どのメソッドをオーバーライドすべきですか?イニシャライザで自分のボタンをセットアップしましたか? LayoutSubViewで? drawRectで?

私はここで最善のアプローチを聞いてみたいと思います。 ありがとう!

編集

のは、私はIBの方法を選択しましょう:私はちょうどそのボタンに「追加」、()を呼び出しますaddButtonWithImageに実際にすべてのコールを、私は関係なく、 addButtonWithImageの設定メインボタンがあります。他のボタンが追加され、ビューが適切に拡大されるまで、メインボタンをビューのサイズにしたい。しかし、私はビューのサイズを最初にユーザーが選択する必要があります... setFrameを使用すると思います。 awakeFromNibでの意味私はまだフレームサイズを数えることはできません(それは私が想定しているxibサイズをとるだけです)。だからどこで私のメインボタンをセットアップするのですか? LayoutSubView? setFrame?よく分かりません。

答えて

0

IBのインターフェイスにUIViewとしてビューを追加し、IDペインでクラスを変更します。コードで初期化を行う必要がある場合は、 - (void)awakeFromNibメソッドを使用してください。私は、ボタンをaddButtonWithImageで追加するときにボタンを設定することをお勧めします....

+0

私の編集を参照してください。 thx – Idan

+0

おそらくsetFrame: – ughoavgfhw

0

私はたぶんサブクラスをやって、コード内のビューを構築するのは良いことです。

drawrectを上書きする:UIImageviewなどを追加して位置を指定するだけの場合は、必要なカスタム図面を作成して、initWith ...:をオーバーライドして独自の初期化を行うことができます。

関連する問題