2

誰かがiOSがインターフェースの回転で何をするかを説明できますか?iPhoneを回転させた後に消えた1つのビューでレイアウトの問題が発生しました。ビューが新しいフレームや境界などを設定したようですが、わかりません。とにかく、レイアウトの問題が永久になくなると、インターフェイスが回転した後。したがって、インターフェイスが回転するときに、ビューに何かを設定する必要があります。

NIBファイルからビューをロードし、ナビゲーションコントローラーで表示します。

BirthdayReminderWidgetConfigViewController *vc = [self.storyboard
    instantiateViewControllerWithIdentifier:@"BirthdayConfigController"];
self.navigationController pushViewController:vc animated:true];

インターフェイスを回転させずにビューを正しく表示するために、いくつかの設定を行う必要があるかもしれません。

次のように、nibファイルからロードされるビューのレイアウトに問題があります。

プロジェクトにはMainStoryboardが含まれています。その中で、nibファイルからビューをロードします。

NSArray *xib = [[NSBundle mainBundle] loadNibNamed:@"View" owner:self options:nil];
self.configViewController = [xib objectAtIndex:0];

ストーリーボードにはナビゲーションコントローラーがあり、ロードされたビューは次のように表示されます。

    if (currentWidgetConfigViewController != nil)
    {
      [self.navigationController pushViewController:currentWidgetConfigViewController animated:true];
    }

だから私の意見では何も悪いことはありませんか?(最初の質問)しかし今問題。

私が設計したのは次のとおりです。

ここに画像の説明を入力してください

iOSが行うことは次のとおりです

ここに画像の説明を入力してください

コントロールがうまく配置されていません。

さらに、新しいビューのボタンを使用して、そのコードでPeoplePickerを開きます。

[self presentViewController:self.picker animated:YES completion:nil];

People Pickerを閉じた後、次の[self.picker dismissViewControllerAnimated:true completion:nil];結果が得られます。

ここに画像の説明を入力してください

では、ここで何が問題になっているのでしょうか。

4

1 に答える 1

1

-setFrame:ビューでandをオーバーライドし-setBounds:て、何が起こるかを確認します。

- (void) setFrame: (CGRect) newFrame
{
    NSLog(@"New frame: %@", NSStringFromCGRect(newFrame));
    [super setFrame:newFrame];
}

また、transform通常はローテーション中に変化します。Orientation Zooが役立つかもしれません。これは、さまざまな回転のユース ケースで何が起こるかを示す Xcode プロジェクトのサンプルです。しばらく触っていなかったので、まだ動くかどうかはわかりません。

于 2012-09-25T06:28:09.440 に答える