2010-11-04 2 views
0

Я новичок в iPhone и с трудом получаю это. Я знаю, что это возможно, но не может найти способ. У меня есть UIView, у которого есть UIToolbar и UITableView. Я использую IB и вижу панель инструментов вверху страницы и TableView под ней, но когда я ром свое приложение, она показывает только TableView, по какой-то причине Toolbar не отображается (TableView его охватывает!).Как остановить UITableView от присоединения к началу

Любая помощь приветствуется, я надеюсь найти настройку в IB, но если мне нужно закодировать ее, это тоже будет хорошо. Я уже пытался установить размер рамки таблицы (self.tableView.frame = CGRectMake(0, 100, 320, 100);), но это ничего не делало!

Благодаря

+0

Какой контроллер вы используете – Matt

+0

У меня был UITableViewController, но в качестве вашей инструкции я сменил его на UIViewController. – Amir

ответ

0

IB как раз показывает область панели инструментов не фактическая панель инструментов ИТС для проектирования цели. Вы должны сделать это вручную.

+0

Я добавил реальную панель инструментов, а не просто установил свойство view для повторного выбора пространства. Как я уже сказал, у меня есть UIView, который содержит UITableView и UIToolbar. – Amir

0

Прежде всего, если вы не используете класс ViewController, пожалуйста, сделайте это.

В IB разместить стол и панель инструментов в представлении, а затем установить вид на FileOwner (tableToolViewController)

Ваш заголовочный файл класса контроллера представления должны выглядеть примерно так

@interface tableToolViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> { 


    IBOutlet UITableView *theTableView; 
    IBOutlet UIToolbar  *yourToolbar 

сейчас подключите свои розетки к вашему столу и панели инструментов, и это должно сделать трюк

Для вызовов, которые используют self.tableView, вместо этого следует использовать выход TableView

+0

Мэтт, я сделал все это, но все тот же результат. У меня это было так же, как у меня было расширение UITableView, но я изменил его, чтобы следовать вашему указанию, и все равно это то же самое!не уверен, что это важно или нет, но я использовал мастер приложений вкладки, и это все в одной из вкладок, таба отображается очень хорошо, и когда я добавил панель инструментов, я вижу, что это хорошо в IB, но как только Я запускаю его, по какой-то причине он расширяет таблицу, чтобы охватить все, кроме вкладки! Даже если я зарезервирую место для навигационной панели, это ничего не поделает! Я уверен, что это что-то простое, но это сводит меня с ума. – Amir

0

Ну, мне удалось решить проблему. Просто объясняю это здесь, так что другие, у кого может быть одна и та же проблема, могут принести пользу.

Я начал с того, что предложил Мэтт, но это не помогло. Затем я создал новый проект и начал играть с различными комбинациями контроллеров и макетов UIView и UITableView.

Похоже, если контроллер вида определен как тип UITableViewController вместо определения его как UITableVC, и владелец файла подключен к представлению таблицы, тогда телевизор расширяется, чтобы покрыть все окно, и вы ничего не можете сделать (я мог бы не найди способ!).

Даже если вы измените определение класса и увеличьте его до UIViewController, все равно это не решит проблему (странно!), Но если просто создать новый класс, увеличьте UIViewController и скопируйте весь свой код из старого класса и убедитесь, что владелец файла, если он подключен к UIView, тогда все работает нормально.

Я уверен, что есть объяснение для всего этого, но пока я рад, что могу построить то, что хочу.

Спасибо за ответы и помощь и счастливое кодирование.

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