0
画面の一番下に揃え、幅が画面を満たす必要があるビューを考えてみましょう。フレームが向きに依存するビューをレイアウトする方法
さらに、ビューの高さは向きによって異なります。ポートレートの向きでは、ビューの高さは200ピクセルでなければならず、ランドスケープでは高さは100ピクセルでなければなりません。
親ビューのサイズについて何も仮定せずにこれを行うには、(ステータスバーを持っているかどうかわからない、タブバーがあるなどの理由で)これを行う最善の方法は何ですか?
これは動作しません。私の現在のコードです:以下に示すよう
- (void)viewDidLoad
{
[super viewDidLoad];
myView = [[UIView alloc] init];
CGSize myViewSize = CGSizeMake(self.view.frame.size.width, 200);
// Align bottom
float myViewY = self.view.frame.origin.y + self.view.frame.size.height - myViewSize.height;
myView.frame = CGRectMake(0, myViewY, myViewSize.width, myViewSize.height);
myView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;
myView.backgroundColor = [UIColor redColor];
[self.view addSubview:myView];
}
- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
BOOL landscape = UIInterfaceOrientationIsLandscape(toInterfaceOrientation);
myView.frame = CGRectMake(myView.frame.origin.x, myView.frame.origin.y, myView.frame.size.width, landscape ? 100 : 200);
}
上記の例では、画面フレームの使い方を詳しく説明できますか? – hpique
また、ツールバーやタブバーがあればどうなりますか? – hpique