UIKit ile Swipe İşlemleri Nasıl Yapılır?

Berkay Oruç
2 min readJun 10, 2022

Merhaba, bu yazıda UITableViewCell için işlevselliği arttıracak swipe işlemlerini nasıl entegre edeceğimizi öğreneceğiz. Material Design standartları tarafından da önerilen swipe işlemleri kullanıcı tecrübesini yükselten öğelerden biridir.

Swipe işlemleri

Giriş

iOS 11 ile getirilen özellik soldan sağa (leading) veya sağdan sola (trailing) şeklinde tanımlanabilmektedir. Temel anlamda .normal ve .destructive stillerini verebildiğimiz swipe işlemlerini UIContextualAction içinde oluşturmaktayız. Style, title ve handler parametrelerini alan UIContextualAction classını birden çok oluşturup ilgili swipe işlemi için kullanabiliyoruz. Daha fazla konuşmadan biraz kod yazalım.

Coding cat

Hadi Kodlayalım

Öncelikle halihazırda bir UITableView tanımladığımızı varsayıyorum. UITableViewCell’in başlangıç kısmına swipe işlemi eklemek için aşağıdaki kodu kullanıyoruz.

override func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? { }

Tam tersi swipe işlemini UITableViewCell’in sonuna eklemek içinse trailing halini kodumuza eklememiz gerekiyor.

override func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? { }

Şimdi bu fonksiyonlarımızın içini dolduralım. Eminim farketmişsinizdir. Fonksiyonlarımız dönüş tipi olarak optional UISwipeActionsConfiguration istemekte. Burada Swift’in bize sağladığı yapı sayesinde trailing veya leading swipe işlemleri için birden çok action tanımlayabiliyoruz.

override func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {   let favouriteaction = UIContextualAction(style: .normal, title: "Edit") { [weak self] (action, view, completionHandler) in      self?.handleMarkAsFavourite()      completionHandler(true)   }   favouriteaction.backgroundColor = .systemBlue   let deleteaction = UIContextualAction(style: .destructive, title: "Delete") { [weak self] (action, view, completionHandler) in      self?.handleMoveToTrash(index: indexPath.row)      completionHandler(true)   }   deleteaction.backgroundColor = .systemRed   return UISwipeActionsConfiguration(actions: [favouriteaction, deleteaction])}
Trailing swipe işlemi

Son Söz

Bu yazıda UITableViewCell için vazgeçilmez olan swipe işlemlerini nasıl tanımlayabileceğimizi anlatmaya çalıştım. Umarım bu yazı ile uygulamalarınız biraz daha zenginleştirmiş olursunuz. Herkese mutlu günler.

Kaynakça

--

--