ポートレートモードでUIViewをXIBとして持っています。
このビューは、次のようにビューコントローラーにプログラムで追加されます。
NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"InputView" owner:self options:nil];
InputView *inputView = (InputView*)[nibObjects objectAtIndex:0];
[self.view addSubview:inputView];
このビューには自動サイズ変更マスクが適切に設定されており、向きが縦向きから横向きに変わったときにうまく回転します。
ただし、向きが既に横向きで、向きの変更後にビューを作成すると、最初の縦向きになります。
マスクを使用して、ビューをポートレートに初期化またはサイズ変更するように指示する方法はありますか?
返信ありがとうございます。
編集: occulus と Inder Kumar Rathore の提案を使用して (ありがとう!)、コードを次のように変更しました。
InputView *inputView = (InputView*)[nibObjects objectAtIndex:0];
[self.view addSubview:inputView];
[self.view setNeedsLayout];
[self.view layoutSubviews];
[self.view layoutIfNeeded];
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
[self shouldAutorotateToInterfaceOrientation:orientation];
残念ながら、まったく変化はありません。同じ質問をしている人を見つけたと思います:
アプリが横向きモードの場合、サブビューを追加するときにビューのサイズが変更されません
答えは問題を正しく識別しますが、あまり心強いものではありません...確かに、2つのペン先を作成したり、フレームのサイズを変更したりできますが、これは自動サイズ変更の考えに反しているようです. 目を覚ましてビューに追加した後、自動サイズ変更機能を使用するようにペン先を伝える方法がないとは信じがたい.
編集2:
idz の解決策は次のとおりです。
InputView *inputView = (InputView*)[nibObjects objectAtIndex:0];
[self.view addSubview:inputView];
inputView.frame = self.view.bounds;
[inputView show];
ありがとう!