2009-12-03 4 views
7

У меня есть табличное представление, которое я хотел бы настроить в зависимости от того, сколько строк у него есть.Как получить счет строки из UITableView

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

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

Любые идеи?

ответ

22

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

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

[tablePropertyName numberOfRowsInSection:SECTION_NUMBER]; 

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

+0

Это должен быть правильный ответ, поскольку это лучшее решение. Вместо того, чтобы полагаться на подсчет источника данных, вы можете просто использовать это свойство, чтобы определить количество строк в этом разделе. Таким образом, независимо от того, что происходит с вашим источником данных (может быть повреждено), вы добавляете строку в нужное место. –

1

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

[myFetchedResultsController.fetchedObjects count]; 
5

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

[myFetchedResultsController.fetchedObjects count]; 

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

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

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

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

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

Надеюсь, это поможет.

0

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

yourTableViewName.numberOfRows(inSection: Int) 

Например:

yourTableViewName.numberOfRows(inSection: 0) // returns rows count in section 0 
Смежные вопросы