0

私の目的は、アプリケーションを横向きと縦向きの両方のモードで機能させることでした。それを行うために理解できたのは、以下のコードだけでした。アプリは縦向きでは問題なく動作していましたが、横向きに切り替えると、テキストが (右側に) 拡張されず、追加のスペースがいっぱいになりませんでした。スプリング/ストラットが設定されていること、および親が IB で「allowResizing」を選択していることを確認しました。

代わりに私がやったことは次のとおりです。

- (void) willAnimateSecondHalfOfRotationFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation duration: 
(NSTimeInterval)duration {
  UIInterfaceOrientation toInterfaceOrientation = self.interfaceOrientation;

  if (toInterfaceOrientation == UIInterfaceOrientationPortrait) {
    self.myView.frame = CGRectMake(0.0, 0.0, 320.0, 480.0);
  }
  else {
    self.myView.frame = CGRectMake(0.0, 0.0, 480.0, 256.0);
  }
}

縦向きモード (ツールバーが表示されます) で問題なく表示されることに注意してください。

ポートレート http://mr-sk.com/img/land.png

ただし、ツールバーは横向きモードではなくなりました。

風景 http://mr-sk.com/img/por.png

何か案は?

4

2 に答える 2

3

Interface Builder を使用する場合 - オブジェクト インスペクタで制約を指定してツールバーを両端と下部に固定しないと、これと同じ結果が得られます (小さな赤い線をクリックして制約を指定します)。

コードでも同じことができます-これを行う方法を調べる必要があります(ただし、IBでは簡単です)

于 2009-10-04T15:33:13.690 に答える
0

めちゃくちゃになる理由はいくつかあります... UIToolbar の親が間違っている可能性があります。おそらく、layoutSubviews が実行されていて、奇妙な場所に移動している可能性があります。または、他の何か。

ビュー コントローラーに didRotateFromInterfaceOrientation: を実装し、回転後に UIToolbar のフレームを読み取って、どこに移動したかを確認することをお勧めします。これは、正確な問題を発見するための最良の方法です。

于 2009-04-21T05:37:25.467 に答える