Xcode でビュー ベースのプロジェクトを開発したとき、私のビューは正常に動作します。しかし、ウィンドウ ベースのプロジェクトを使用して自分でビューを作成し、それをサブビューとしてウィンドウに追加しようとすると、下部に白い帯が表示されます。私はこれまでこの問題に直面したことはありませんでしたが、初めて直面しました。
4 に答える
UIScreenから解像度を取得して、常にビューサイズを設定する必要があります
UIView *controllersView = [myViewController view]; // get the view
[controllersView setFrame:[[UIScreen mainScreen]applicationFrame]]; // set the Framesize
これにより、原点が自動的にx=0およびy=20に設定されます。新しいiPhone4の場合と同じように画面の解像度が変わる可能性があるため、原点を手動でy = 20に設定するのではなく、この方法を使用する必要があることに注意してください。
面白いことに、AppleのiPhone用HelloWorldの例でさえ、ビューフレームを正しく設定せずに20ピクセルのバグがあります。
誰かが知る必要がある場合に備えて、原点をオフセットするコードは次のようになります。
CGRect frame = myController.view.frame;
frame.origin.y = 20.0;
myController.view.frame = frame;
最も可能性が高いのは、ステータス バーを使用するのに適切なサイズのビューをウィンドウに追加していて、そのサイズにステータス バーが含まれていることです。
iPhone の画面の高さは 480 ピクセルで、そのうちの上位 20 ピクセルがデバイスのステータス バー (信号強度/WiFi インジケーター、時計などがあるバー) に割り当てられます。通常、ビューはウィンドウの残りの 460px に合わせてサイズ設定されます。ビューベースのアプリを開発している場合は、それで問題ありません。そのアプリケーション テンプレートは、他のすべてのサブビューが追加される 320x460 のルート ビューを既に提供しています。
しかし、画面の 480 ピクセルすべてにまたがるウィンドウに追加しているので、私の推測では、ビューは 20 ピクセルでは短すぎます。ビューの高さを変更するか、y オフセットを設定してみてください。
インターフェイスビルダーを使用している場合は、ビューをクリックして属性インスペクターに移動し、ステータスバーをなしに変更します。次に、サイズ インスペクタでビューの高さを 480 に調整するだけです。