制約を使用してビューをレイアウトしたいと思います...次のようになります。
ポートレート モードの場合:
ランドスケープ モードの場合:
これまでの私のコードは制約用です:
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[profilHeader]|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(profilHeader)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_ad]|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(_ad)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_tableView]|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(_tableView)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[profilHeader(100)][_ad(50)][_tableView]-0-|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(profilHeader, _ad, _tableView)]];
(50) を _ad の脇に置かないと、_tableView がその上に表示されます。
もちろん、(50) を _ad とは別に使用すると、横向きにすると、tableView が 18 ピクセル上に移動しません (広告が 480x32 になるため)...