У меня есть UITableView
с UITableViewCell
s, которые являются swipable. Когда ячейка пробита, я хочу, чтобы вид был видимым (открытым) под этой ячейкой. Вот код, который у меня есть:insertSubview: belowSubview: in UITableViews
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
_cellBack = [[UIView alloc] initWithFrame:CGRectMake(0, cell.frame.origin.y, cell.frame.size.width, cell.frame.size.height)];
_cellBack.backgroundColor = [UIColor whiteColor];
[self.tableView insertSubview:_cellBack belowSubview:cell];
for (int i = 0; i < [self.tableView subviews].count; i++) {
UIView *v = [[self.tableView subviews] objectAtIndex:i];
if ([v isEqual:_cellBack]) {
NSLog(@"cellBack %d", i);
}
if ([v isEqual:cell]) {
NSLog(@"cell %d", i);
}
}
В цикле for
, я проверяю, если индексы при просмотрах являются, как я ожидал, и на самом деле они являются; _cellBack
имеет индекс, который меньше одного индекса cell
.
Когда я заменить insertSubview:belowSubview:
вызов insertSubview:aboveSubview:
, он отлично работает (хотя и с белым UIView
показывая вверх над прокатывается клетки), так что это не вопрос, не выделяя _cellBack
должным образом. Я также пробовал insertSubview:atIndex:
, и это тоже не сработало.
Что может быть причиной этого?
Спасибо!
Вы пытаетесь A) вставить новый вид НИЖЕ (например, внизу) указанную ячейку, так что ваш новый вид и ячейка таблицы наслаиваются одна на вершине другой; или вы пытаетесь B) вставить новую строку для своей таблицы, чтобы, если в таблице было три ячейки в начале после запуска вашего кода, у нее было бы четыре? – jonkroll
Я пытаюсь добавить его под ячейку. Это не новая строка, которую я добавляю. – donkim
Так может быть, что вы успешно добавляете свой subview, но поскольку он имеет тот же размер и в том же месте, что и ячейка таблицы, вы просто не видите его, потому что ячейка таблицы находится поверх него и полностью скрывает его? – jonkroll