Добавить NSMutableArray в TableView, который содержит набор представлений - PullRequest
1 голос
/ 30 декабря 2010

Вот то, что я пытаюсь сделать, я установил View с одним изображением и тремя метками, каждый из которых идентичен.

[viewarray addObject:xView]; //view array is NSMutable Array and I am adding 5-6 views
[tblView insertRowsAtIndexPaths:viewarray withRowAnimation:UITableViewRowAnimationFade];

Этот код не выдает никакой ошибки, но также не даетt добавить что-нибудь в таблицу.

Что я делаю не так, Также, если возможно, дайте мне фрагмент кода для создания Custom UIView с One UIImageView + 3 Lables левой стороны изображения и правой стороны 3 надписи

Ответы [ 3 ]

1 голос
/ 10 декабря 2013

UITableView не использует UIViews в качестве ячеек.На самом деле он использует UITableViewCell.Метод insertRowsAtIndexPaths:withRowAnimations: ожидает NSArray NSIndexPath.

Каждый UITableViewCell в UITableView соответствует одному NSIndexPath.NSIndexPath содержит порядок и номер раздела конкретного UITableViewCell в UITableView.

Например: NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:1]; Это создаст NSIndexPath для строки 0 (первая ячейка) в разделе 1.

После создания NSIndexPath вы можете использовать insertRowsAtIndexPaths:withRowAnimations:.

[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];

Это заставит UITableView вызвать cellForRowAtIndexPath:, чтобы создать новую ячейку с информацией, которую вывставьте NSIndexPath.

Вы можете получить больше информации о UITableViewCell здесь:

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewCell_Class/Reference/Reference.html#//apple_ref/occ/cl/UITableViewCell

Или вы можете посмотреть Руководство по программированию табличного представления здесь:

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/AboutTableViewsiPhone/AboutTableViewsiPhone.html#//apple_ref/doc/uid/TP40007451-CH1-SW1

0 голосов
/ 30 мая 2013

insertRowsAtIndexPaths:withRowAnimations: фактически ожидает, что первый параметр будет массивом путей индекса, а не представлений.

Таким образом, правильное использование будет выглядеть так:

[tblView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:3 inSection:4]] withRowAnimations:UITableViewRowAnimationAutomatic];

В этом случае табличное представление автоматически запросит у своего источника данных фактические представления ячейки для этих путей индекса посредством вызова - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

0 голосов
/ 30 декабря 2010

Вам нужно взглянуть на информацию UITableView и UITableViewCell.

В табличном представлении для отображения ячеек используются объекты UITableViewCell.

Метод insertRowsAtIndexPaths просто сообщает UITableView о необходимости добавления некоторых ячеек.

Это tableView: cellForRowAtIndexPath: метод (протокола UITableViewDataSource), который используется для установки ячеек таблицы.

...