Как использовать стандартные элементы управления, такие как кнопка удаления или индикатор раскрытия в пользовательском UITableViewCell? - PullRequest
0 голосов
/ 04 февраля 2020

Я хотел бы создать пользовательский UITableViewCell, который работает как ячейка номера телефона в приложении "Контакты":

enter image description here

Есть ли некоторые встроить метод в стандартные элементы управления , такие как кнопки добавления / удаления / раскрытия в моей ячейке? Или я должен сам создавать эти активы?

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

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020

Да. Вы можете реализовать следующий метод:
Сначала ViewController имеет свойство с именем isEditing, которое определяет, находится ли ячейка в редактируемом состоянии.

extension UIViewController {

    open var isEditing: Bool

    open func setEditing(_ editing: Bool, animated: Bool)

    open var editButtonItem: UIBarButtonItem { get }
}

Затем необходимо реализовать методы делегата UITableView. например:

    // Override to support conditional editing of the table view.
    override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
        // Return false if you do not want the specified item to be editable.
        return true
    }

    // Override to support editing the table view.
    override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
        if editingStyle == .delete {
            // Delete the row from the data source
            tableView.deleteRows(at: [indexPath], with: .fade)
        } else if editingStyle == .insert {
            // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
        }    
    }

Наконец, когда переменная isEditing имеет значение true, вы можете получить то, что хотите выше.

0 голосов
/ 04 февраля 2020

Да, есть встроенные элементы управления. Здесь у вас есть Apple учебник , где вы описали, как создать функцию удаления.

Также в документации Apple по UITableCellView вы можете найти свойство Editing Style , которое добавляет элементы управления в клетки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...