デバイスが回転しているときにルートビューを自動サイズ変更する

私はPDFリーダーを開発しています。私はシミュレータを回転させながら問題に直面しています。私がしていることは、 ViewController (つまり loadView )でビューを読み込んだときに、 UIScrollView > UIImageView と UIView を同じサイズ(つまり、PDFページのサイズ)に設定します。ポートレートモードでは完全に動作しています。しかし、ランドスケープモードでシミュレータを回転させると、ビューはデバイスに応じて自動サイズ変更されません。私が試してみました

self.view.autoresizesSubviews = YES;
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 

ViewControllerの viewDidLoad()

しかし、それは動作していません。私は上記2つのプロパティがどのように機能するのか混乱しています。これらのプロパティは、 UIScrollView をロードしているルートビューのサイズに UIScrollView を自動サイズ変更すると思います。しかし、UIScrollViewがロードされているメインビューを自動サイズ変更するにはどうすればよいですか?

4

2 答え

これは遅い返信です...それはあなたがまだそれを修正していない場合に役立つ可能性があります。

ポートレートモードでアプリケーションを作成し、それを横長モードに回転(サイズ変更)したい場合は、User Interface Builderまたは.xib(またはStoryboard iPadまたはiPhone)ファイルで行う必要があります。

したがって、シミュレータで回転を確認または確認するには:

  1. 「ユーザーインターフェースビルダー」または「.XIB」(または「ストーリーボードiPadまたはiPhone」)ファイルに移動します。

  2. 次に、「UIImageView」を選択し、「ATTRIBUES INSPECTORを表示」に移動します。

  3. 第4のタブ(Attributes Inspector)でモードを "Aspect Fit"に設定し、第3のタブ(Size Inspector)と第5のタブ(Size Inspector)で自動サイズ設定属性を次のように設定します:

矢印をすべての方向に設定します。申し訳ありません画像をロードできません。

  1. "UIView"(3)と同じ操作を行います。

  2. 移動する前に、詳細表示コントローラーを選択し、向きを縦から横に変更することで、自動サイズ変更のすべての属性を正しく確認できます。申し訳ありません現在画像を読み込めません...

  3. 右上の「シミュレートされた指標」で「風景」または「ポートレート」を確認または変更できます。「サイズ」の下で「方向」を選択します。

何か問題がなければ、心配する必要はありません。ポートレートに戻して設定をもう一度確認してください。

0
追加された

I've experienced the same problem when trying to utilise the auto resizing methods. So, I hope this will help. (P.S. I'm assuming you're creating the UI programmatically and not via IB)

あなたはこれを試しましたか?

ViewController内に次の項目を追加します:

//View Controllerを画面全体に合わせて設定します。 - (BOOL)wantsFullScreenLayout {     YESを返します。 }

loadViewメソッド内でscrollViewを次のように修正します:

// set the initial size of your scrollView object.
[scrollView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

// Set the auto resizing attributes.
[scrollView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];

これに加えて、デバイスの回転時に必要なレイアウトのタイプに応じて、UIViewまたはUIImageViewの自動サイズ変更マスク余白を設定する必要があります。

0
追加された