2011-10-24 13 views
0

私はもう少し画面の不動産を取り上げるために操作したツールバーがあります。問題は、アプリがバックグラウンドから戻ってきて、それがストックサイズにリサイズされ、それを再びサイズ変更するように見えないときです。私は現在、それだけでself.naviagtionController.toolbar.frame = CGRectMake(X,Y,W,H);iOS - バックグラウンドから戻った後でUIToolbarのサイズが変更されました。

を経由しても、私はnavigationControllerツールバーを使用していますされて修正していますどのように

。 (そして、私はnavigationControllersツールバーを使用するための非常に特別な理由があります)

+0

いつ、どこでこれをやっていますか? – Zoleas

+0

私はAppDelegateで直接試してみましたが、UIViewControllerでも設定しようとしましたが、どちらもアプリケーションをフォアグラウンドに戻した後にツールバーのサイズを調整するようです。 – Mytheral

+0

コントローラのviewWillAppearメソッドでこれを実行しようとしましたか? – Zoleas

答えて

0

あなたのチェックがアクティブな通知になった後、ツールバーのサイズを設定します。その後、カスタムサイズを設定し、サイズを設定した後に何かが来てデフォルトのサイズに戻します。それはそれですか?

私はあなたがメイン実行ループの実行まで、あなたの変更を遅らせる試みることができる

それを行うには良い方法があるだろうと思いますが、...。これを行うには、GCDを使ってアクションをバックグラウンドスレッドに置いて、バックグラウンドスレッドをメインスレッドに戻します。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     // set toolbar frame 
     self.naviagtionController.toolbar.frame = CGRectMake(X,Y,W,H); 
    }); 
}); 
+0

このコードは私にとってはうまくいかないようです...これらのパラメータは、dispatch_get_main_queueでは表示されません。少なくともXcodeはそれが私には言いません。 – Mytheral

+0

あなたは正しいです。コピー&ペーストで失敗しました。 dispatch_get_main_queueにはパラメータはありません。私は2行を切り取って貼り付けたときにそれらを残しました。上記のコードを修正しました。 – DBD

関連する問題