Инструменту UITableViewCell, который показывает подпанель на ощупь и скрывает его на второе касание
Мне нужно создать специальныйtableViewCell ,который показывает специальноеподвидо при первом касании и скрывает его при втором касании , что подвидо содержит некоторые метки или кнопки.
1 ответ:
В
cellForRowAtIndexPath
Добавьте свойствоtag
к подвиду рассматриваемой ячейки. Также задайте свойствуhidden
подвида значениеYES
. Наконец, установите ячейкуselectionStyle
вUITableViewCellSelectionStyleNone
.if (thisIsTheIndexPathInQuestion) { CGRect theFrame = CGRectMake(...); // figure out the geometry first UIView *subview = [[UIView alloc] initWithFrame:theFrame]; // further customize your subview subview.tag = kSubViewTag; // define this elsewhere, any random integer will do subview.hidden = YES; cell.selectionStyle = UITableViewCellSelectionStyleNone; [cell.contentView addSubView:subview]; [subview release]; }
Тогда просто реагируйте на то, что вы описываете в соответствующем методе делегата UITableView:
Убедитесь, что ваша" специальная " ячейка имеет другую- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (thisIsTheIndexPathInQuestion) { // you know how to check this UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; UIView *subview = [cell viewWithTag:kSubViewTag]; subview.hidden = !subview.hidden; // toggle if visible } }
CellIdentifier
, и это будет работать.