SwiftUI bir liste öğesini silmeyi çok basitleştirdiğinden, çok hızlı ve kısa bir makale olacak 🙂
Adım 1: Veri Kaynağı Oluşturma
ContentView
dosyanızı bu şekilde gözükecek şekilde güncelleyin:
1 2 3 4 5 6 7 | struct ContentView: View { @State var listItems = ["Item 1", "Item 2", "Item 3"] var body: some View { Text("Hello World") } } |
Şimdi bir veri kaynağımız oldu. Bu bir State
tipinde tanımlama olduğu için herhangi bir değişiklik olduğunda liste
kendini otomatik güncelleyecektir.
Adım 2: List View Ekleyin
Hello World
Text
kısmını bu şekilde list
ile değiştirelim:
1 2 3 4 5 | List { ForEach(listItems, id: \.self) { (item) in Text(item) } } |
Artık uygulamayı çalıştırdığınız zaman listedeki öğeleri görebilmeniz gerekir.
Adım 3: onDelete Metodunu Ekleyin
Listeyi aşağıdaki gibi görünecek şekilde güncelleyin:
1 2 3 4 5 6 7 | List { ForEach(listItems, id: \.self) { (item) in Text(item) }.onDelete { (indexSet) in self.listItems.remove(atOffsets: indexSet) } } |
Bu şekilde liste içindeki her bir öğe için onDelete metodunu çağırmış olduk. Bu metod indexSet sayesinde silme işlemini gerçekleştirdiğimiz öğenin pozisyonunu algılayıp işlemi sadece o öğe için yapacak.
Tamamlanmış Kodumuz:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | struct ContentView: View { @State var listItems = ["Item 1", "Item 2", "Item 3"] var body: some View { List { ForEach(listItems, id: \.self) { (item) in Text(item) }.onDelete(perform: self.deleteItem) } } private func deleteItem(at indexSet: IndexSet) { self.listItems.remove(atOffsets: indexSet) } } |
Umarım faydalı bir içerik olmuştur, takıldığınız yerler için yorumlarda yardım istemekten çekinmeyin ☺️ Sağlıcakla kalın 🙋🏻♂️