iOS - сделайте UITableView с настраиваемыми ячейками, доступными для редактирования при нажатии кнопки

Я хочу добавить небольшую кнопку рядом с моим заголовком UITableView, которая при нажатии изменяет мои ячейки представления таблицы на редактируемые (установка UITextField на место для метки детали), которую я могу редактировать, а затем снова нажимаю кнопку, и она возвращается и сохраняется.

Или добавьте кнопку в нижний колонтитул, которая просто читает «Сохранить», и ячейки всегда доступны для редактирования.

Как я могу это сделать?


person 8vius    schedule 16.03.2012    source источник


Ответы (1)


Подкласс UITableViewCell, переопределите layoutSubviews, чтобы подготовить различное представление нормального режима и режима редактирования (@property(nonatomic, getter=isEditing) BOOL editing, чтобы решить, какой). Или вы можете переопределить setEditing: animated, но никогда этого не пробовали.

Затем кнопка должна вызывать что-то вроде

[mytable setEditing:YES animated:YES];

Когда вы вызываете этот метод со значением редактирования, установленным на YES, табличное представление переходит в режим редактирования, вызывая setEditing: animated: для каждого видимого объекта UITableViewCell. Вызов этого метода с установкой редактирования NO выключает режим редактирования. В режиме редактирования ячейки таблицы могут отображать элемент управления вставкой или удалением с левой стороны каждой ячейки и элемент управления переупорядочением с правой стороны, в зависимости от того, как настроена ячейка. (Подробности см. В справочнике по классу UITableViewCell.) Источник данных табличного представления может выборочно исключать ячейки из режима редактирования, реализуя tableView: canEditRowAtIndexPath :.

person A-Live    schedule 16.03.2012
comment
Есть ли под рукой руководство по программированию, в котором это подробно объясняется? Также есть идеи о том, как делать кнопки? - person 8vius; 16.03.2012
comment
@ 8vius, посмотрите ответ здесь. Не совсем то, что вы хотите, но общая идея должна быть довольно ясной: stackoverflow.com/questions/742829/ - person A-Live; 16.03.2012
comment
@ 8vius что там с кнопкой? Вам не нужно вызывать setEditing:NO, если вы не хотите, и вы можете оставить таблицу в режиме редактирования. Фактически, вы можете показать его в режиме редактирования с самого начала и никогда не выключать. - person A-Live; 16.03.2012
comment
Да, но я имел в виду, как добавить кнопку рядом с заголовком UITableView? - person 8vius; 16.03.2012
comment
@ 8vius вы имеете в виду наверху таблицы или слева / обряд? Первый вариант прост со свойством tableHeaderView таблицы, а второй - более сложным, поскольку заголовки разделов изменяют ширину автоматически, чтобы соответствовать ширине таблицы, решение состоит в использовании viewForHeaderInSection, создании собственного представления заголовка и добавлении кнопки из фрейма заголовка. как подпредставление. clipSubviews таблицы должен быть NO, чтобы подвид был видимым вне рамки таблицы. Или вы можете поиграть с заголовком UIViewAutoresizing. - person A-Live; 17.03.2012