Как отметили Йонель и Джордж в комментариях к ответу 7KV7 , изменение маски авторазмера не работает, как предполагалось на iOS 5.
Я нашел другое решение, используя метод - [UIView sizeThatFits:] . Вот как я это сделал:
- (void) layoutForInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Adjust the toolbar height depending on the screen orientation
CGSize toolbarSize = [self.toolbar sizeThatFits:self.view.bounds.size];
self.toolbar.frame = (CGRect){CGPointMake(0.f, CGRectGetHeight(self.view.bounds) - toolbarSize.height), toolbarSize};
self.webView.frame = (CGRect){CGPointZero, CGSizeMake(CGRectGetWidth(self.view.bounds), CGRectGetMinY(self.toolbar.frame))};
}
Затем я вызываю этот layoutForInterfaceOrientation:
метод в моем контроллере вида viewWillAppear:
и willAnimateRotationToInterfaceOrientation:duration:
методы.
Высота, тем не менее, изменяется программно, но, по крайней мере, значение не кодируется жестко.