Разные изображения в таблице? - PullRequest
0 голосов
/ 03 октября 2011

Я новичок в форуме, и мне очень нужна помощь.У меня есть вид таблицы, и я могу добавить в нее ячейки с помощью различных кнопок на отдельной странице.Я хочу, чтобы каждая кнопка добавляла новую ячейку, но с другим изображением.Так например.Кнопка 1 добавит ячейку и изображение с именем @"button1.png" Кнопка 2 добавит ячейку с изображением с именем @"button2.png" и так далее.Но у меня возникли проблемы с добавлением изображения в ячейку.Я могу сделать это в cellForRow, но не в методе кнопки.Может ли кто-нибудь помочь мне?Я пробовал это в кнопках:

РЕДАКТИРОВАТЬ кнопка используется для добавления ячейки и изображения:

- (IBAction)outlet1:(id)sender {
[cart.cells addObject:@"1"];
[cart.cell.imageView setImage:[UIImage imageNamed:@"paddle1.png"]];
}

cellForRow

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:   
(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";

cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault     
reuseIdentifier:CellIdentifier];
} 
//cell.imageView.image = [UIImage imageNamed:@"paddle1.png"];
[myTableView reloadRowsAtIndexPaths:indexPath.row   
withRowAnimation:UITableViewRowAnimationNone];

cell.textLabel.text = [cells objectAtIndex:indexPath.row];
return cell;
}

Ответы [ 2 ]

0 голосов
/ 05 октября 2011

Если я понимаю проблему, вы хотите, чтобы объект корзины отображал свою картинку в ячейке таблицы.Если это так, то почему бы вам не добавить представление UIImage к объекту корзины.В соответствующее время (где-то, где объект выбирается пользователем) сохраните изображение элемента в вашем UIImage представлении объекта.Затем, когда вы идете, чтобы установить объект корзины в вашу таблицу, у вас есть имя объекта (предположительно) и его изображение в вашем объекте, и вы можете легко установить изображение ячейки = на изображение вашего объекта.Не пытайтесь иметь логику того, какое изображение отображать внутри метода «cellForRowAtIndexPath».Сохраните изображение и все атрибуты вместе с вашим объектом и используйте objectAtIndex, чтобы указать на ваш законченный объект и установить ячейку на основе атрибутов ваших объектов.

0 голосов
/ 03 октября 2011

Способ рендеринга UITableView заключается в том, что он запрашивает ячейку для строки всякий раз, когда собирается рендерить эту строку, генерирует необходимые пиксели и затем забывает о ячейке. Поскольку большая часть структуры ячейки не изменяется от строки к строке, существует возможность повторно использовать один и тот же объект ячейки для визуализации нескольких строк и просто (например) изменить текст метки или изображение imageView.

Следовательно, изменение ячейки после рендеринга строки не меняет внешний вид строки. Вы должны указать таблице для повторного рендеринга этой строки:

[myTable reloadRowsAtIndexPaths:indexPathArray withRowAnimation:foo];

Это заставит ОС вызвать сообщение cellForRowAtIndexPath: делегата источника данных tableView, которое затем должно создать и / или изменить ячейку, которая затем будет обработана.

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

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