Как достичь той же функциональности, что и приложение для iOS Mail с помощью ячейки с чеклибером?

Я пытаюсь воспроизвести тот же тип функциональности, что и приложение для почтовых ящиков iOS, когда пользователь просматривает ячейку tableview, как показано на рисунке:

введите описание изображения здесь

Есть 3 варианта: больше, флаг и архив. Когда пользователь нажимает на любой из 3, цвет фона изменяется, указывая, что он находится в выделенном состоянии. Однако значок и текст не меняют цвет.

Я пытаюсь добиться такого же эффекта.

Я следую этому руководству по учебным пособиям, чтобы создать пользовательскую ячейку tableview с использованием swipeable, используя жесты:

Как сделать свистящую панель для просмотра таблицы с действиями – без использования орехов со списком прокрутки

В настоящее время у меня есть это:

введите описание изображения здесь

В каждой ячейке содержится 3 UIViews , где каждый UIView содержит UIImageView и UILabel представляющие Dirty, Edit, Delete.

Я добавляю жесты жесты к 3 UIViews следующим образом:

 let dirtyButtonView = cell.viewWithTag(7) let editButtonView = cell.viewWithTag(8) let deleteButtonView = cell.viewWithTag(9) let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(MyVC.buttonPressed)) tapRecognizer.numberOfTapsRequired = 1 dirtyButtonView?.addGestureRecognizer(tapRecognizer) editButtonView?.addGestureRecognizer(tapRecognizer) deleteButtonView?.addGestureRecognizer(tapRecognizer) 

Тем не менее, я не могу достичь функциональности состояния выделения, которое приложение Mail имеет, когда пользователь выбирает один из трех вариантов.

Я не уверен, что это правильная реализация, т. UIView и добавление к нему жест?

Как я могу достичь чего-то похожего на функциональность прокрутки приложения iOS Mail?

благодаря

2 Solutions collect form web for “Как достичь той же функциональности, что и приложение для iOS Mail с помощью ячейки с чеклибером?”

Я нашел именно то, что искал, SwipeCellKit , by jerkoch. Эта библиотека выполняет те же точные действия, что и приложение для почтовых ящиков iOS при прокручивании влево. Не нужно иметь дело с различными UIViews и UIButtons .

Чтобы использовать, просто совместите SwipeTableViewCellDelegate и используйте его в editActionsForRowAt так:

 func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> [SwipeAction]? { guard orientation == .right else { return nil } let deleteAction = SwipeAction(style: .destructive, title: "Delete") { action, indexPath in // handle action by updating model with deletion } // customize the action appearance deleteAction.image = UIImage(named: "delete") return [deleteAction] } 

Обязательно измените класс ячейки на SwipeTableViewCell и установите его делегат следующим образом: cell.delegate = self .

Я бы посмотрел на SWTableViewCell от CEWendel. Похоже, у него есть именно то, что вы ищете.

Interesting Posts

Написание приложения для Android и iOS

Ошибка при выпуске iOS 10 GM при подаче приложений «приложение пытается получить доступ к конфиденциальным данным без описания использования» из-за GoogleSignIn, AdMob

Возможная ошибка в CFNetDiagnosticCopyNetworkStatusPassively? Возврат kCFNetDiagnosticConnectionDown только через 3G / 4G.

Безопасное обнаружение джейлбрейка?

похож на Android INSTALL_REFERRER в Iphone

Получение дубликатов табличных ячеек после первого раза

Сафари iOS 6, setInterval не запускается

Запустить установленное приложение на привязанный iPhone

Включить редактирование UITableView только в указанном разделе

UINavigationItem: разница между заголовком и подсказкой

Использование камеры в режиме Cordova / Phonegap bypass «Использовать фотографию» в iOS возможно

«Не переносимый путь к файлу« File.h »; указанный путь отличается в случае с именем файла на диске «предупреждение в заголовке моста после обновления до Xcode 8.3

Как заставить кнопку постоянно вызывать функцию при удержании (SpriteKit)

Размер виртуальной клавиатуры iOS без центра уведомлений

В чем разница между протоколом и интерфейсом в Objective-c?

PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.