2016-01-06 1 views
-1

EDIT: я понял, ответ на мой собственный, но здесь это для всех, кто нуждается в этом: UIImageViews не могут быть разделены таким образом, требуется другой конкретизацией каждого UIImageView для каждой видимой ячейки. Теперь ты знаешь.UITableCell AccessoryView: Установка accessoryView равный UIImageView бесконечный цикл

У меня есть пользовательская таблица, которая имеет 2 типа ячеек. Одна ячейка просто настроена для переключения между обычным аксессуаром типа checkmark. Другая ячейка настроена на создание пользовательского изображения в качестве типа аксессуара. Когда выбранный аксессуар изменится на противоположный, появится сообщение «Приглашение» или «Пригласить».

Я сузил код в ошибке до следующего, найденного в моем методе делегата tableView: cellForRowAtIndexPath.

if(indexPath.section == 0){ 
    cell = [tableView dequeueReusableCellWithIdentifier:self.directCellID]; 
    cellValue = [self.contactsUsingApp objectAtIndex:indexPath.row]; 
    cell.imageView.image = [self getContactImage:indexPath.row]; 
//vvvvvvvvvvvvvvvvv This is the section at fault vvvvvvvvvvvvvvvvv 
    if([self.selectedContactsUsingApp containsObject:indexPath]) 
     cell.accessoryView = self.invitedStatus; 
    else 
     cell.accessoryView = self.notInvitedStatus; 
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
} 

Если я закомментировать этот раздел я больше не убегающих использование памяти (имитатор показал мне, что там была какая-то константа распределения происходит, он вставал прошел 1.29Gb после старта с 40Mb), но, очевидно, , изображения больше не отображаются.

Если это имеет значение в UIImageViews инициализируются следующим образом:

UIImage *invite = [self imageWithImage:[UIImage imageNamed: @"invite_btn.png"] scaledToSize:CGSizeMake(40, 20)]; 
UIImage *invited = [self imageWithImage:[UIImage imageNamed: @"invited_btn.png"] scaledToSize:CGSizeMake(40, 20)]; 
self.notInvitedStatus = [[UIImageView alloc]initWithImage:invite]; 
self.invitedStatus = [[UIImageView alloc]initWithImage:invited]; 

(imageWithImage: шкала является функцией, которая возвращает уменьшенное изображение в соответствующем масштабе учета для сетчатки здесь: The simplest way to resize an UIImage?)

такое же замораживание происходит, когда я выбираю одну из ячеек, потому что мой метод tableView: didSelectRowAtIndexPath работает по той же логике переключения, что и метод инициализации.

Помощь?

+0

При каких обстоятельствах вы перезагружаете свой стол? –

+0

Если вы нашли свой собственный ответ, вы должны опубликовать фактический ответ вместо того, чтобы обновить вопрос с ответом. Либо это, либо удалить вопрос. – rmaddy

+0

Спасибо за предложение. Я не знал, что смогу это сделать. –

ответ

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^