UITableView додаємо іконку до UITableViewRowAction
iOS SDK дає нам з коробки два варіанти налаштувати кнопку, яка буде показана при зрушенні UITableViewCell вліво.

Перший варіант, доступний з перших версій і до наших днів, мало привабливий для звичайних кнопок, оскільки призначений саме для «небезпечних» дій, тому що фон забарвлюється системою в червоний колір і не піддається легкій зміні через публічний API.
Другий варіант, доступний з iOS 8, більше приваблює, оскільки є можливість вказати стиль кнопки (Destructive, Normal), а також у разі потреби встановити конкретний колір фону черезbackgroundColor.
Ні перший, ні другий варіанти не дозволяють призначити іконку, що досить неприємно. Але ми все одно спробуємо щось зробити.Спроба раз
UITableViewRowAction виглядає більш багатим на налаштування. Спробуємо поставити йомуbackgroundColorза допомогоюpatternImage:

Результат очікувано кривуватий, але ми хоча б отримали іконку на кнопці. Залишимо питання кольору фону та тексту на потім, спершу спробуємо налаштувати саму іконку.
ОскількиpatternImageпокликаний повторюватися, спробуємо збільшити сам pattern, щоб він повторювався якнайменше — створимо pattern за розміром кнопки:

Тепер виглядає набагато краще. Але якщо, наприклад, поле виявиться багаторядковим, а слідом за висотою розтягнеться і комірка, то буде не дуже приємно:

Спробуємо зробити інакше. Що відбувається, коли ми зрушуємо рядок вліво? Правильно, вона просто їде ліворуч, оголюючи те, що знаходиться нижче за ієрархією: кнопку. Спробуємо додати шар зверху, який буде пристебнутий до правого краю комірки (компонент PureLayout на допомогу для швидкості реалізації).

Тепер результат набагато приємніший, правда є однеалев даному підході: ширина зсуву комірки визначається текстом в UITableViewRowAction.title. Відповідно, доведеться регулювати видиму частину кнопки саме цим параметром. Як варіант - заповнювати його відповідними потрібними ширинами пробілами, або дописувати щось на початок або кінець.
До речі, цей елемент не відпрацьовує натискання сам, тому вони спокійно пересилаються наUITableViewRowAction.handler.

Схоже, тепер все виглядає чудово.
У результаті є дваалепри такому підході: — ширина зсуву визначається окремо параметром UITableViewRowAction.title — не вдасться зробити більше однієї кнопки, або доведеться тіснити їх у своєму шарі і туди ж вставляти свої кнопки
Однак це бачиться мені приємніше, ніж поширений підхід щодо вбудовування кнопки в саму комірку з обробкою жестів, оскільки ускладнюється логіка.
Можливо, є ще лаконічніший спосіб досягти бажаного, але мені про таке поки що невідомо.
Ви можете допомогти і перевести небагато коштів на розвиток сайту