2012-05-17 2 views
3

Я пытаюсь добавить в UINavigationControllerUIToolbar в верхней части представления (в навигационном контроллере.как добавить UINavigationController UIToolbar в верхней части представления не дно

мой взгляд является UITableViewController .. ., так что в том, что иметь дело. в настоящее время я просто позиционирование UIToolbar, который появляется в нижней части окна, где я хочу, чтобы отобразить с помощью

[self.navigationController.toolbar setFrame:CGRectMake(0, 60, 320, 30)]; 

это позиционирует панель в нужном месте я хотел бы его чтобы появиться, однако есть проблема с тем, где его позиционируется, что я буду xplain.

Когда вы устанавливаете панель инструментов UINavigationController, которая будет отображаться, она помещается в нижнюю часть представления и подталкивает UITableView вверх, чтобы панель инструментов не закрывала представление таблицы. Однако, когда я изменяю положение панели инструментов, табличное представление все еще думает, что панель инструментов находится внизу экрана, что означает, что панель инструментов не соответствует флешу в нижней части экрана, как мне тоже хотелось бы.

Итак, мой вопрос заключается в том, как я могу отобразить панель инструментов непосредственно под панелью навигационного контроллера и нажать на таблицу вниз, чтобы разместить панель инструментов в ее новом положении.

Я надеюсь, что все это имеет смысл, Любая помощь, которую я бы хотел, чем раньше, и ниже - это текущий код, который я использую (все будет основным, я все еще недоумеваю о том, что происходит за кулисами, чтобы это произошло).

- (void) viewDidLoad 
{ 
//.. 

    [self.navigationController setToolbarHidden:NO animated:YES]; 
    [self.navigationController.toolbar setFrame:CGRectMake(0, 60, 320, 30)]; 
    self.navigationController.toolbar.tintColor = [UIColor lightGrayColor]; 

//.. 
} 

обновление

это в настоящее время, что панель инструментов делает для моей Tableview

enter image description here

ответ

4

вызова setFrame на вашем UITableView, чтобы переместить его в positon.

float y = self.navigationController.toolbar.frame.origin.y + self.navigationController.toolbar.frame.size.height; 
[myTable setFrame:CGRectMake(0, y, self.view.frame.size.width, self.view.frame.size.height-y)]; 
+0

, как вы думаете, его можно назвать на себе.tableView? Я использовал tableViewController .. поэтому я не уверен, как назвать его на mytable, поскольку я его не установил. Я только что использовал self.tableview, однако, когда я использовал ваш код с self.tableView, его доза, похоже, не работает. –

+0

Да, myTable - это просто место для любого вашего UITableView ivar. Как вы создали свою таблицу? В интерфейсе Builder или в коде? Вы можете включить автоматическое изменение размера, которое отменяет команду setFrame. – Joel

+0

В интерфейсе Builder я добавил UItableView и передал представление ему в их .. Я просто искал изменение размера авто, я увидел автоматическое изменение размера subviews, которое я только отменил, но это не помогло .. есть другой, который я могу искать. –