2012-01-24 6 views
1

私は過去2日間、この問題で頭を悩まされてきました。グーグルでは多くのグーグルが答えを見つけることができませんでしたので、私はここでいくつかの助けを求めることにしました。私は運があるかどうかを見てみましょう。UIButtonsを使用したUIViewがクリックまたは回転する前に表示されない

私はUIViewでカスタマイズされたUIButtonsの可変番号を持つ再利用可能なコントロールをコーディングしています。私はinitWithFrameinitWithCoder:とdrawRectを実装しました。ここで、ボタン(描画前に作成されています)が実際にビューに追加されています。コントロールを使用しているときはUIButtonのコンテンツを提供する必要があるため、すべてがプログラムで行われるため、このUIViewのXIBはありません。

このUIViewを、のはのは、それcustomizableBarButtonViewを呼びましょう、のは、その上に表示してMyTestViewControllerそれを呼びましょう、CustomizableBarButtonはその後、UIViewControllerで使用され、それを呼び出してみましょう。

のGUIは、UIViewcustomizableBarButtonViewに関連付けられているIBに設定されています(クラスはそれに応じて一致していました)。

MyTestViewControllerは、viewWillAppear:を除いてかなり標準的なクラスです。ボタンは、ボタンを初期化し、他のオプションとともにCustomizableBarButtonに渡します。

問題は、すべてが完璧に動作することです。初めての場合を除いて!

私はシミュレータでアプリケーションを実行すると(私はまだiPhoneで試していないが、ハードウェアの問題ではないと強く信じている)MyTestViewControllercustomizableBarButtonViewの背景を表示しますが、ボタンは表示しません。今すぐあなたがボタンをすべき場所をクリックすると、すべてのボタンが突然表示されます!

私はCustomizablebarButtonから戸惑っています。drawRect:奇妙な "クリックアンドポア"効果の前に実行され、ボタンは実際にサブビューに追加されます。

私の助けになるもう一つのヒント:ボタンをクリックしないと(まだボタンはありません)、デバイスを回転させると、まるで魔法のように表示されます。

それはおそらく非常にシンプルなものですが、私はそれが欠けていると私はナッツ行くよ...

は、誰かが、これに手を貸すしてくださいことはできますか?

ありがとうございます!

答えて

0

drawRect:にボタンを追加しています。それをしないでください。 initメソッドにボタンを追加する必要があります。

+0

お返事ありがとうございました!質問は、私のinitメソッドはボタンについて知りません。ボタンは、ボタン(イメージ、タイトルなど)を記述するデータオブジェクトのNSArrayから作成されます。 NSArrayは、プロパティが設定されるように監視されたプロパティです。* After * MyTestViewControllerは、CustomButtonBarのinitメソッドを呼び出します。 –

+0

次に、配列の変更を確認するとすぐにボタンを追加します。 drawRectまで待たないでください。 –

+0

多くのありがとう、ロブ!あなたは命の恩人です!それは完璧に働いた!問題を理解しようとしているだけです。私はdrawRectから恥ずかしがりますか?カスタムUIViewを「ポピュレートする」Appleが推奨する方法ではありませんか? –

関連する問題