iOS - Как взглянуть на действие «Размах удалить» в ячейке табличного представления? - PullRequest
1 голос
/ 09 апреля 2019

Когда определенный контроллер табличного представления отображается впервые, как кратко показать, что в строке таблицы есть красная функция «проведите пальцем по удалению»?

Цель программной игры в пикабу с этим - показать пользователю, что эта функциональность существует.

Среда: iOS 11+ и приложение для iPhone.

Вот изображение, показывающее, как ячейка сместилась наполовину с простой красной кнопкой «Провести для удаления». Showing delete action under table cell via partial swipe

Другой разработчик любезно упомянул SwipeCellKit, но SwipeCellKit - это еще не все. Все, что мы хотим сделать, - это кратко смоделировать частичное пролистывание, чтобы пользователь знал, что «пролистывание до удаления» существует. Другими словами, мы хотим обеспечить пиковое значение при действии удаления под ячейкой.

Если это поможет, вот ссылка на код showSwipe SwipeCellKit Вот ссылка с примером ее использования .

Я посмотрел исходный код SwipeCellKit. Мне не понятно, как это сделать без SwipeCellKit. Кроме того, использование SwipeCellKit в настоящее время недоступно.

Поиск в Google не помог. Я продолжаю знакомиться с , как добавить действия смахивания , но не с тем, как кратко показать действия смахивания, известные как элементы UITableViewRowAction, которые находятся под ячейкой для пользователя.

Как кратко показать пользователю это встроенное действие «Размах удалить»?

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

Я почти уверен, что это невозможно. Действия смахивания содержатся в UISwipeActionPullView, который содержит UISwipeStandardAction подпредставлений, оба из которых являются частными. Они также являются частью табличного представления, а не ячейки, и они не добавляются, если не происходит жест, поэтому вы не можете просто повернуть ячейку в одну сторону и увидеть их там.

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

Однако зачем делать это «правильно», когда можно обмануть? Не должно быть слишком сложно отразить представление содержимого ячейки немного влево, отскочить в красном поле (не так далеко, чтобы вы могли видеть текст, чтобы избежать проблем с локализацией), а затем вернуться в нормальное состояние. Сделайте это при первой загрузке табличного представления и прекратите делать это через N раз или после того, как пользователь докажет, что знает, как работает данное соглашение iOS.

0 голосов
/ 09 апреля 2019

Первый : включить редактирование

func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
   return true
}

Затем Настройте свой свайп

func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
   let conformeRowAction = UITableViewRowAction(style: UITableViewRowActionStyle.default, title: NSLocalizedString("C", comment: ""), handler:{action, indexpath in
        print("C•ACTION")
    })
   conformeRowAction.backgroundColor = UIColor(red: 154.0/255, green: 202.0/255, blue: 136.0/255, alpha: 1.0)
   let notConform = UITableViewRowAction(style: UITableViewRowActionStyle.default, title: NSLocalizedString("NC", comment: ""), handler:{action, indexpath in
        print("NC•ACTION")
    })
   notConform.backgroundColor = UIColor(red: 252.0/255, green: 108.0/255, blue: 107.0/255, alpha: 1.0)
   return [conformeRowAction,notConform]
}
...