У меня есть a UIView
в a UITabController
. И существует a UITableView
в нем.
При переключении в панели состояния вызова это ничего не делает, и представление автоматически не изменено.
Это принимает правильный размер на основе ли в вызове UIStatusBar
был переключен, когда приложение запускается, но если UIStatusBar
переключается, пока приложение работает, ничто не изменяется.
Другое представление вкладки с a UINavigationController
кажется, изменяет размер прекрасный.
Вот код
if ([indexPath indexAtPosition:0] == 0 || [indexPath indexAtPosition:0] == 1) { if (!airportChooser) { airportChooser = [[AirportChooserController alloc] init]; airportChooser.targetController = self; airportChooser.view.autoresizesSubviews = YES; airportChooser.view.autoresizingMask = UIViewAutoresizingFlexibleHeight; [airportChooser.view setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleWidth]; } airportChooser.target = [indexPath indexAtPosition:0]; [self.parentViewController.parentViewController.view addSubview:airportChooser.view]; self.parentViewController.parentViewController.view.autoresizesSubviews = YES; self.parentViewController.parentViewController.view.contentMode = UIViewContentModeRedraw; [self.parentViewController.parentViewController.view setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleWidth]; airportChooser.view.contentMode = UIViewContentModeRedraw; //[airportChooser open]; }
Вы установили маску изменения размера UIView
правильно? Вы можете установить его в Interface Builder
на вкладке размера, это красные линии, по которым вы можете щелкнуть.
Вы также можете установить это в коде, используя что-то вроде:
[view setAutoresizingMask:UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight];
Также убедитесь, что супервизор установил для параметра autoresizesSubviews
значение ДА.
Дополнительную информацию об этом можно найти в документации UIView .
Хотя ответ Клааспейтера имеет смысл и в некоторых случаях может быть правильным ответом в моем конкретном случае это произошло из-за того, что я добавлял дополнительное представление к представлению UINavigationController с помощью addSubview вместо pushViewController: анимированный просмотр: NO;