среда, 29 июля 2015 г.

Добавление и удаление строк в UITableView

1. Добавление строки

Метод @IBAction связанный с кнопкой Add,  вызываемый для добавления элементов/строк в UITableView :



@IBAction func addItem() {
    // текущее количество элементов в массиве
    let newRowIndex = items.count


    // создаем новый элемент item класса ChecklistItem
    let item = ChecklistItem() 
    item.text = "I am a new row" 
    item.checked = false 

    // добавляем элемент в массив
    items.append(item)

    // создаем экземпляр NSIndexPath для последующего добавления строки в tableView
    let indexPath = NSIndexPath(forRow: newRowIndex, inSection: 0

    let indexPaths = [indexPath] //массив NSIndexPath 
    // Даем команду tableView на добавление нового элемента из массива items , с индексом indexPath.row
    tableView.insertRowsAtIndexPaths(indexPaths,withRowAnimation: .Automatic




2. Удаление строки

"A common way to do this in iOS apps is “swipe-to-delete”. You swipe your finger over a row and a Delete button slides into the screen. A tap on the Delete button confirms the removal, anywhere else will cancel."
Общим решением для этого [удаления - прим.] в iOS приложениях является действие “swipe-to-delete”. Вы проводите пальцем по строка и клавиша Delete "выезжает" с края экрана. Тап по клавише Delete подтверждает удаление строки. Так в любом другом месте отменяет удаление.

Для реализации swipe необходимо добавить следующий метод в Controller :


override func tableView(tableView: UITableView,
commitEditingStyle editingStyle:
UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {

   // 1
   items.removeAtIndex(indexPath.row)
   // 2
   let indexPaths = [indexPath] tableView.deleteRowsAtIndexPaths(indexPaths,

Комментариев нет:

Отправить комментарий