Как получить количество строк из UITableView

У меня есть tableview я хотел бы настроить на основе того, сколько строк он имеет.

Если у него нет строк, я хотел бы, чтобы фоновое изображение предложило пользователю добавить контент. Если он имеет 1 или более строк, я бы хотел, чтобы у него было другое фоновое изображение для отображения содержимого.

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

какие идеи?

4 ответов


Ну, это обычно очень легко сделать, так как вам нужно только правильно делегировать UITableView вашему ViewController с соответствующими методами делегирования, включенными в ваш .m-файл.

тогда вы можете в любом месте получить количество строк, как это:

[tablePropertyName numberOfRowsInSection:SECTION_NUMBER];

где номер раздела 0 для первого раздела, 1 для второго и т. д.


Я согласен с ответом Сикстена Отто.

[myFetchedResultsController.fetchedObjects count];

однако есть еще. Над линией будет возвращено количество объектов независимо от разделов. Однако, если вы хотите выполнить это для таблицы с несколькими разделами, вам придется вызвать ее следующим образом.

[[myFetchedResultsController.sections objectAtIndex:<section>] numberOfObjects];

вы можете получить объекты для раздела, как это.

[[myFetchedResultsController.sections objectAtIndex:<section>] objects];

** вы должны заменить на номер, представляющий раздел.

надеюсь, что это помогает.


Я бы рекомендовал взглянуть на документацию для NSFetchedResultsController. Это пример кода для реализации методов UITableViewDataSource (включая те, которые говорят, сколько разделов таблицы и сколько строк в каждом разделе), а также документирование свойства fetchedObjects, который вы могли бы использовать, чтобы увидеть, сколько необработанных результатов вы получили.

[myFetchedResultsController.fetchedObjects count];

в Swift вы можете получить количество строк UITableView по

yourTableViewName.numberOfRows(inSection: Int)

пример:

yourTableViewName.numberOfRows(inSection: 0) // returns rows count in section 0