私は過去2日間、この問題で頭を悩まされてきました。グーグルでは多くのグーグルが答えを見つけることができませんでしたので、私はここでいくつかの助けを求めることにしました。私は運があるかどうかを見てみましょう。UIButtonsを使用したUIViewがクリックまたは回転する前に表示されない
私はUIView
でカスタマイズされたUIButtons
の可変番号を持つ再利用可能なコントロールをコーディングしています。私はinitWithFrame
:initWithCoder
:とdrawRect
を実装しました。ここで、ボタン(描画前に作成されています)が実際にビューに追加されています。コントロールを使用しているときはUIButton
のコンテンツを提供する必要があるため、すべてがプログラムで行われるため、このUIView
のXIBはありません。
このUIView
を、のはのは、それcustomizableBarButtonView
を呼びましょう、のは、その上に表示してMyTestViewController
それを呼びましょう、CustomizableBarButton
はその後、UIViewController
で使用され、それを呼び出してみましょう。
のGUIは、UIView
がcustomizableBarButtonView
に関連付けられているIBに設定されています(クラスはそれに応じて一致していました)。
MyTestViewController
は、viewWillAppear
:を除いてかなり標準的なクラスです。ボタンは、ボタンを初期化し、他のオプションとともにCustomizableBarButton
に渡します。
問題は、すべてが完璧に動作することです。初めての場合を除いて!
私はシミュレータでアプリケーションを実行すると(私はまだiPhoneで試していないが、ハードウェアの問題ではないと強く信じている)MyTestViewController
はcustomizableBarButtonView
の背景を表示しますが、ボタンは表示しません。今すぐあなたがボタンをすべき場所をクリックすると、すべてのボタンが突然表示されます!
私はCustomizablebarButton
から戸惑っています。drawRect:奇妙な "クリックアンドポア"効果の前に実行され、ボタンは実際にサブビューに追加されます。
私の助けになるもう一つのヒント:ボタンをクリックしないと(まだボタンはありません)、デバイスを回転させると、まるで魔法のように表示されます。
それはおそらく非常にシンプルなものですが、私はそれが欠けていると私はナッツ行くよ...
は、誰かが、これに手を貸すしてくださいことはできますか?
ありがとうございます!
お返事ありがとうございました!質問は、私のinitメソッドはボタンについて知りません。ボタンは、ボタン(イメージ、タイトルなど)を記述するデータオブジェクトのNSArrayから作成されます。 NSArrayは、プロパティが設定されるように監視されたプロパティです。* After * MyTestViewControllerは、CustomButtonBarのinitメソッドを呼び出します。 –
次に、配列の変更を確認するとすぐにボタンを追加します。 drawRectまで待たないでください。 –
多くのありがとう、ロブ!あなたは命の恩人です!それは完璧に働いた!問題を理解しようとしているだけです。私はdrawRectから恥ずかしがりますか?カスタムUIViewを「ポピュレートする」Appleが推奨する方法ではありませんか? –