Рассмотрим вид, который должен быть выровнен по нижней части экрана и ширина которого должна заполнять экран.
Кроме того, высота вида зависит от ориентации. В портретной ориентации высота вида должна составлять 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);
}