У меня есть несколько строк в табличном представлении, которые я люблю редактировать.
Я думал, что метод setEditing даст мне кнопку "Редактировать и удалить", но он показывает толькоКнопка Удалить.Поскольку у меня нет контроллера подробного представления, который будет помещен в didSelectRowAtIndexPath, я подумал, что смогу показать пару элементов редактирования в выбранной ячейке.
Мне нужно добавить три кнопки, чтобы указать приоритет для назначений:Низкий, Высокий и Средний приоритет.Это означает, что мне нужно изменить высоту выбранной ячейки, чтобы освободить место для этих кнопок, я думаю, это довольно легко сделать.
Что мне интересно, так это правильный путь?
Сегодня я провел довольно много исследований, не найдя примеров того, как другие решили редактирование в UITableViewCell.Если вы отредактируете контакт в приложении «Контакты» на iPhone, UITableViewCells изменится, чтобы включить быстрое и простое редактирование, вот что я ищу.
Так что у вас есть советы для меня по этому вопросу?
Редактировать # 1
Мой код в didSelectRowAtIndexPath:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
Cell *selectedCell = (Cell *)[tableView cellForRowAtIndexPath: indexPath];
UIButton *btn = [UIButton buttonWithType: UIButtonTypeRoundedRect];
btn.frame = CGRectMake(0, 0, 50, 100);
btn.titleLabel.text = @"Set this item to High Priority";
btn.backgroundColor = [UIColor greenColor];
[selectedCell.contentView addSubview: btn];
self.editing = YES;
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject: indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
Код для heightForRowAtIndexPath:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
Cell *cell = nil;
if (self.editing)
cell = (Cell *)[tableView cellForRowAtIndexPath: indexPath];
else
cell = nil;
BOOL expandCell = NO;
NSInteger expandationHeight = 0;
if (cell != nil)
{
for (UIButton *btn in cell.contentView.subviews)
{
NSLog(@"A button was found.");
expandationHeight = 70;
expandCell = YES;
}
}
return expandationHeight + heightOfOtherElements;
}
Когда я нажимаю на ячейку, ничего не происходитно все становится отключенным, я не могу щелкнуть никакие элементы в виде отверстия.Это как-то связано с [tableView cellForRowAtIndexPath: indexPath], потому что, если я раскомментирую эту строку, пользовательский интерфейс не станет отключенным.
Что я делаю неправильно?