Так что я не уверен, как работает этот dequeueReusableCellWithIdentifier и возможно ли то, что я ищу. У меня есть пользовательский UITableViewCell с BOOL showIcon. В TableViewCell, если это правда, я показываю это, в противном случае я не показываю этот значок в своей ячейке. В моем cellForRowAtIndexPath я извлекаю объект в моем массиве из моей модели и устанавливаю его для свойства UITableViewCell.
Сначала это работает на том, что видно на моем экране. Затем, когда я прокручиваю таблицу вниз, она не работает, и значения, которые я должен видеть для showIcon, просто не отображаются. И потом, когда я прокручиваю назад вверх, оригинальных значков, которые были там, там нет. Является ли dequeueReusableCellWithIdentifier все еще тем, что я хочу использовать в этом случае? Или я что-то не так настраиваю и показываю в нем данные? Огромное спасибо.
КОД:
На моем пользовательском UITableViewCell у меня есть
BOOL showIcon;
В моем методе cellForRowAtIndexPath я использую способ UINib для получения своего пользовательского UITableViewCell следующим образом:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row = [indexPath row];
static NSString *OrderTableViewCellIdentifier = @"OrderTableViewCellIdentifier";
OrderTableViewCell *cell = (OrderTableViewCell *)[tableView dequeueReusableCellWithIdentifier:OrderTableViewCellIdentifier];
if (cell == nil) {
UINib *cellNib = [UINib nibWithNibName:@"OrderTableViewCell" bundle:nil];
[cellNib instantiateWithOwner:self options:nil];
cell = self.TbvCell;
[cell.CheckmarkButton addTarget:self action:@selector(CheckmarkButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
self.TbvCell = nil;
}
Order *order = [orderArray objectAtIndexPath:row];
cell.order = order;
}
Тогда в моем TableViewCell это примерно так:
@property (nonatomic, retain) Order *order;
@property (nonatomic, retain) UIImageView *icon;
переопределенный установщик:
- (void)setOrder:(Order *)newOrder {
if (!order.showIcon) {
icon.hidden = YES;
}
}