У меня есть простой UINavigationController. В методе инициализации я создаю и добавляю UITableView в качестве подпредставления.
- (id)init {
self = [super init];
if (self) {
NSLog(@"%@", NSStringFromCGRect(self.view.frame)); // {{0, 20}, {320, 460}}
tableView = [[UITableView alloc] initWithFrame:self.view.frame];
[self.view addSubview:tableView];
}
return self;
}
Я всегда сталкиваюсь с та же досадная проблема при работе с новыми проектами. Добавленные подпредставления оказываются на 20 пикселей ниже панели навигации.
Почему я получаю {{0, 20}, {320, 460}} для self.view.frame ? Я не хочу форсировать фрейм CGRect, я бы предпочел установить его на основе фрейма контроллера представления, чтобы у меня не возникало проблем с динамическими изменениями фрейма (модем, телефонный звонок и т. Д., Когда строка состояния выше ).
Обновление: Также заметил, что я получаю высоту кадра 460. Это тоже не имеет смысла. В моем случае у меня действительно есть панель вкладок, поэтому высота не должна быть минусовой. строка состояния без панели навигации и высоты панели вкладок?
Спасибо