私は自分のアプリをiphone5で見栄えよくすることができず、あるいは適度に見栄えがすることさえできません。それは混乱です。どこから始めたらいいのかわからない。スクロールビューはランダムな場所にあり、アプリの下部に灰色のバーがあります。ストーリーボード内で物事を動かして動作させようとしましたが、古い画面では台無しになります。自動レイアウトもオンに切り替えましたが、iOS5ではアプリが動作しません。どんな助けでも大歓迎です。乾杯
2 に答える
一般に、スプリングとストラット(またはUIAutoresizingMask
s)が正しくセットアップされている場合、iPhone5の起動はそれほど追加の作業ではありません。また、などのコード行を使用している場合は[someView setFrame:CGRectMake(hardCodedX, hardCodedY, hardCodedWidth, hardCodedHeight)];
、失敗に備えているだけです。デバイス(またはsuperView)の画面サイズに相対的な位置を使用するには、このコードをリファクタリングする必要があります。スプリングやストラットを使用して実現できない複雑なサブビューレイアウトの場合は、layoutSubviews
そこで複雑なセットアップをオーバーライドして実行できます。
あなたが述べたように、iOS 5をサポートしている場合、自動レイアウトはオプションではありません。
ストーリーボードにスプリング/ストラットがあります。私はここでそれを赤で概説しました:
さまざまなIビームのあるボックスにマウスを合わせると、選択したビューのサイズがどのように変更されるかをシミュレーションできます(ボックスの右側の画像は、拡大および縮小するとアニメーション化されます)。
スプリングとストラットは、個々のビューごとに設定されています。これらは、自動サイズ変更マスクを使用してプログラムで設定できます。ボックスの両側にある4つのIビームの場合、実線は基本的に「この位置にビューを固定する」ことを意味します。中央の2つの垂直バーの場合、実線は「ビューがこの方向(幅または高さのいずれか)で柔軟であること」を意味します。
スプリングとストラットはすべて、ビューのスーパービューに関連しています。
たとえば、ビューをスーパービューの上部に固定したいが、スーパービューが大きくなるにつれて高さを大きくしたい場合(たとえば、iPhone 5のように画面が高い場合、ビューコントローラのメインビューが大きくなります)、上部のIビームを実線(上部に固定)にし、ボックス内の垂直線を実線(スーパービューとともに高さを大きくする)にします。ここでボックスにマウスを合わせると、右側の画像の上部が固定されていますが、垂直方向に拡大および縮小します。
一般に、新しいiPhone5画面でアプリを表示できるようにするのは簡単です。ストーリーボードを使用する場合、コードが1つもなくても、いくつかの簡単な手順で実行できます。
- ストレスをかけないでください
- 下位互換性を維持したい場合(iOS 5以前)、ファイルインスペクターでAutoLayoutを無効にしてください。
- uiviewcontroller / storyboardで、iPhone5画面のサイズを設定する必要があるアイテムを選択します。次に、サイズインスペクターを選択します。
- 「自動サイズ設定」というタイトルの赤い線が入った白いボックスに注意してください(これらはjrnstoneが参照するスプリング/ストラットだと思います)。
- 外側のボックスの赤い線をクリックすると、画面サイズが異なる場合や向きが変わった場合にオブジェクトを整列させる方法がiOSに通知されます。内側のボックスは、オブジェクトのサイズを変更する方法をiOSに指示します。[例]ボックスは、そのオブジェクトのサイズがどのようになるかを示しています。
- Xcodeでは、ストーリーボードエディターの右下隅にある[フォームファクター]ボタンをクリックして、さまざまな画面サイズでアプリがどのように表示されるかをプレビューすることもできます。