У меня есть табличное представление с 3 предметами, один из которых у меня за кнопкой. Когда кнопка выбрана, я хочу скрыть эту кнопку, открывая элемент позади нее. Я отображаю строку таблицы, используя ячейку представления таблицы. Когда я выбираю одну кнопку, чтобы скрыть, при прокрутке таблицы скрываются другие кнопки. Скрытие кнопки, кажется, скрывает кнопку, основываясь на каком-то месте в видимых строках текущего представления. Я пытаюсь скрыть кнопку в определенной строке.
Я могу писать в NSLog всякий раз, когда нажимаю на код, чтобы скрыть кнопку, и попаду туда только один раз, но при прокрутке таблицы скрытый атрибут для кнопки применяется к другим строкам, которые появляются. Если я выберу кнопку в строке 53, я хочу скрыть только кнопку в строке 53, а не кнопки в других строках таблицы из 120 строк.
Кто-нибудь когда-нибудь делал то, что я пытаюсь сделать? Буду признателен за любую помощь, чтобы выяснить, что происходит. Спасибо.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *ElementCellIdentifier = @"ElementCellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ElementCellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"ElementRowCell"
owner:self options:nil];
if ([nib count] > 0) {
cell = self.tvCell;
} else {
NSLog(@"failed to load ElementRowCell nib file!");
}
}
NSUInteger row = [indexPath row];
UILabel *atomic_number = (UILabel *)[cell.contentView viewWithTag:1];
atomic_number.text = [NSString stringWithFormat:@"%d",elements_table[row].atomic_number];
UILabel *element_name = (UILabel *)[cell.contentView viewWithTag:2];
element_name.text = [NSString stringWithCString:elements_table[row].element_name];
UILabel *element_symbol = (UILabel *)[cell.contentView viewWithTag:3];
element_symbol.text = [NSString stringWithCString:elements_table[row].element_symbol];
return cell;
}
- (IBAction)buttonPressed:(id)sender {
NSLog(@"Getting to buttonPressed from row button");
UIButton *pressedButton = (UIButton *)sender;
NSIndexPath *indexPath = [self.mainTableView indexPathForCell: (UITableViewCell *)[sender superview]];
pressedButton.hidden = TRUE;
}