У меня есть простой UINavigationController.В методе init я создаю и добавляю 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 высоту для кадра.Это тоже не имеет смысла.В моем случае у меня фактически есть панель вкладок, поэтому высота не должна быть минус строка состояния, минус панель навигации и минус высота панели вкладок?
Спасибо