У меня есть UINavigationController, который нажимает на другой UIViewController. В этом UIViewController я собираюсь показать UITableView в портретном режиме и другое представление в ландшафтном режиме.UIViewController не заполняет экран
Поэтому в моем представленииDidLoad я создаю UIView, а затем добавляю к нему 2 ViewControllers. Моя проблема в том, что когда он загружается, я получаю следующий белый край вверху.
Я думаю, что это из-за (в моем шаге 3 ниже)
CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
[[self view] setFrame:appFrame];
не возвращает полный экран, минус панель навигации. Это правильно? Если да, то как я могу заставить его вернуть полный размер, чтобы не было белого поля?
- (void)viewDidLoad
{
[super viewDidLoad];
// Step 1 - Set up the tableDataView for vertical layout
TableDataViewController *tableController = [[TableDataViewController alloc] init];
self.tableDataViewController = tableController;
[tableController release];
// Step 2 - Set up the graphView for horizontal layout
GraphViewController *graphController = [[GraphViewController alloc]
initWithNibName:@"GraphViewController" bundle:nil];
self.graphViewController = graphController;
[graphController release];
// Step 3 - Get the screen size
CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
[[self view] setFrame:appFrame];
// Step 4 - Add the vertical view to the containerView
// and then add the containerView to this controller
containerView = [[[UIView alloc] initWithFrame:appFrame] autorelease];
[[self view] addSubview:containerView];
[containerView addSubview:[tableDataViewController view]];
// Step 5 - Add to the active view so we can test for it later
activeView = [tableDataViewController view];
}
Большое спасибо
Майк
Когда я делать то, что вы предлагаете выше я получаю следующее: Screenbounds {{0,0}, { 320,480}}, Screenframe {{0,20}, {320,460}}. Поэтому в идеале мне нужно использовать ограничения [[UIScreen mainScreen]], чтобы получить максимальный размер. Однако я делаю это, и у меня все еще есть белый запас под панелью навигации. Это похоже на то, что он полностью игнорирует это. Майк. – hydev
Я только что играл с этим, и кажется, что он полностью игнорирует то, что я установил ** CGRect appFrame **. Я просто сделал CGRectMake (0,0,20,20), и не было никакой разницы. TableController и graphController как-то ведут себя самостоятельно. – hydev