9

自動回転をサポートするカスタム UINavigationController があります。また、ナビゲーション コントローラーのスタックにスローするビューの 1 つに UIDatePicker があります。縦向きで日付ピッカー ビューを開始してから回転すると、自動回転が機能します。最初に横向きで日付ピッカー ビューを読み込もうとすると、ビューがすべて台無しになります。回転をサポートしておらず、フレームにピッカーの約半分しか表示されておらず、中心からずれている場合は、そうなるように見えます。

問題が発生した場合に備えて、自動回転をサポートする独自の日付ピッカーを作成しようとしました.2つの異なるビューを作成してそれらを交換しようとしました.ViewWillAppearメソッドでビューフレームサイズを変更しようとしました. それらのどれもまだ私のために働いていないようです。

ナビゲーション コントローラーで日付ピッカーを横向きに正しく表示する方法について何か提案はありますか? おそらく単純なものを見落としており、答えは目の前にありますが、見つけられません。

4

6 に答える 6

13

私は同じ問題に遭遇しました。すでに横向きの状態でビューをロードすると、UIPicker が正しくレンダリングされません。Llamagraphics のこのページから修正が見つかるまで、回避策を見つけるのに数時間を費やしました。このコードを、ピッカーを持つビュー コントローラーの viewDidLoad に追加します。

for (UIView* subview in myPicker.subviews) {
    subview.frame = myPicker.bounds;
}

詳細については、ウェブページをご覧ください。スチュアートありがとう!

于 2010-03-12T19:54:46.067 に答える
0

さて私はそれを修正しました。なんとか向きを確認してから、日付ピッカーを削除し、コードで日付ピッカーを再作成して追加しました。それはうまくいきました、それは美しくはありませんでした、しかしそれはうまくいきました。

于 2009-07-08T00:21:37.003 に答える
0

自動回転されるビューに日付ピッカーを追加します(ウィンドウに直接表示されるのではなく、コントローラーのビュー)。

セットするself.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin

于 2009-07-09T12:45:30.423 に答える
0

iPadで水平方向にサイズ変更された日付ピッカー(タイマーモード)を表示する場合にも同じ問題が発生しました。このバグの既知の解決策を機能させることができなかったので、ビューに2つの日付ピッカーを配置するという醜いハックでこれを修正しました-1つはバックグラウンドでサイズ変更され、もう1つは標準サイズ(320px)ですフォアグラウンドで...私は知っています、病気に聞こえますが、それは正しく表示され、それが重要です。とにかくそれはAppleのせいです;)

于 2010-05-10T15:18:19.597 に答える
0

これが私のために働いたものです。DatePicker を作成するときは、ポートレート モードであると認識させます。

[[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationPortrait  animated: NO];
datePicker = [[UIDatePicker alloc] initWithFrame: CGRectZero];
[[UIApplication sharedApplication] setStatusBarOrientation: curOrientation animated: NO];

したがって、基本的には、方向を変更し、datePicker を作成して、すぐに方向を以前の状態に戻します。ピッカーの幅 (画面幅) と高さ (216) を別の場所に設定します。

この手がかりは別のページから得ました。

于 2010-04-04T04:24:20.803 に答える