UITableView не прокручивается, если не назначено родителям. Свойство представления UIViewController - PullRequest
1 голос
/ 11 декабря 2011

Я поместил UITableView в UIViewController и скопировал код из UITableViewController в мой UIViewController, чтобы он выполнял «Протоколы табличных данных» с реализацией UITableViewControllers по умолчанию и следую главе http://developer.apple.com/library/IOs/#documentation/UserExperience/Conceptual/TableView_iPhone/CreateConfigureTableView/CreateConfigureTableView.html#//apple_ref/doc/uid/TP40007451-CH6-SW10s «Создание представления таблицы программным способом»"(с использованием ViewDidLoad вместо LoadView, так как я использую IB и перо, я создал выход для UITableView с именем tableView).

Теперь в приведенной выше главе ссылок UITableView назначен для self.view, который являетсяUIView свойство UIViewController.Затем прокрутка UITableView работает, но UITableView заполняет весь экран, скрывая другое содержимое представления, например UIToolbar - возможно, поскольку оно является единственным содержимым после назначения свойству представления.

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

Как добиться прокрутки UITableView внутри UIViewController, когда UIVC имеет статическое содержимое (например, панель инструментов)?

Вот соответствующий код:

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
    [super viewDidLoad];
    tableView.delegate = self;
    tableView.dataSource = self;
    [tableView reloadData];
    //self.view = tableView;
}

1 Ответ

0 голосов
/ 11 декабря 2011

Если у вас есть другой контент в контроллере представлений, который вы добавляете в конструктор интерфейса, то это будет частью свойства .view UIViewController - когда вы назначаете этому табличное представление, вы удаляете весь этот контент.

Если ваше табличное представление отображается нормально, но не прокручивается (как насчет выбора? Это работает?), Возможно, вы отключили взаимодействие с пользователем.

Вы упомянули в комментариях, что в вашем табличном представлении нет ничего, кроме пустых ячеек - я думаю, что это является причиной вашей проблемы.Я только что создал пример проекта, где я добавил в табличное представление как подпредставление представления контроллера представления, и прокрутка в порядке - это со мной, заполняя там 100 фиктивных строк.Если я ничего не возвращаю для методов источника данных и делегата, то табличное представление не прокручивается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...