2009-03-18 4 views
3

Возможно ли изменить размер UITableView на RootController приложения на основе навигации? Когда RootViewController.xib открывается в IB, нет представления. Только UITableView. Нажав на инспектор, а затем на маленькую желтую линейку, высота рамки серого цвета. Я добавляю панель программно в RootViewController:Изменение размера UITableView на RootController

[toolbar setFrame:rectArea]; 

Это работает хорошо, но нижняя ячейка в Tableview частично скрыта, потому что TableView не знает о панели инструментов.

ответ

6

Да, но вам необходимо иметь ViewController (не UITableViewController) в качестве корневого контроллера для навигатора и обернуть фактический UITableView в представлении UIViewControllers.

Вы все еще можете согласовать UIViewController с протоколами UITableViewDelgate и Datasource и использовать все те же методы, что и сейчас, в вашем UITableViewController.

P.S. вы получите больше ответов, если используете обычный тег «iphone».

+0

Я думал, что это, вероятно, должно пойти именно так. Спасибо за подсказку. – 4thSpace

1

Вы также можете просто установить содержание и скроллер вставка из Tableview

+0

Кажется, не работает для меня. – Dimitris

10

Самый простой способ, чтобы настроить contentInset (который наследуется от UIScrollView). Изменение размера путем установки рамки может вызвать сумасшедшие ошибки рисования в ячейках.

Например, если вы пытаетесь изменить размер TableView для клавиатуры, сделать что-то вроде этого:

tableView.contentInset = UIEdgeInsetsMake(0.0, 0.0, 216.0, 0.0); 
tableView.scrollIndicatorInsets = tableView.contentInset; 

Надежда, что помогает кому-то. Этот способ работал лучше для меня.

0

я столкнулся с аналогичной проблемой при попытке отобразить контроллер подробно сам по себе, см: http://vimeo.com/13054813

Вопрос заключается в том, что контроллер SplitView применяет свои собственные преобразования в суб-контроллеров, выводя их из обнаружения ориентации который ударяет козлов и кажется невероятно «взломанным» для встроенных классов. (Видео иллюстрирует, что происходит, когда вы делаете представление детали в корневом представлении, а затем добавляете его обратно в разделенное представление и делаете корень с открытым списком в ландшафтном режиме, вы получаете двойное вращение подробного представления.)

К сожалению, я 'снова снова сталкиваются с этими проблемами преобразования, пытаясь изменить размер поднабора детали SplitViewController в ответ на появление/исчезновение клавиатуры. В портрете все прекрасно работает, в ландшафте это fscked.

0

Да, отрегулируйте содержимоеInset и scrollIndicatorInsets - это удобный способ изменения размера UITableView. Как отправлено answer из Sam Soffes, мне удалось изменить размер UITableView в UITableViewController для нижнего UIToolbar.

Смежные вопросы