SwiftUI: List

List objesi sayesinde tek bir sütunda birden çok elemanı listeleyebilirsiniz.

Rana Taki
TurkishKit
5 min readSep 7, 2020

--

Merhaba TurkishKit okuyucuları. 🖖 Bugün SwiftUI’da bulunan List özelliğini konuşacağız. Bu özelliği kullanarak uygulamanıza isim, ülke, hava durumu ve bir çok farklı özelliği barındıran listeler ekleyebilirsiniz. 📝

Ekrana Liste Eklemek

SwiftUI’da herşey gibi, liste eklemek de son derece basittir. 😜 Ekranınızda bir liste oluşturabilmek için tek yazmanız gereken kod aşağıdaki gibidir:

Evet, liste oluşturup uygulamanıza eklemek bu kadar kolay. 👾 Ekran simülasyonunu çalıştırdığınızda sonuç aşağıdaki gibi olur.

Listeye Renk Katmak 🎨

Elimizde olan liste biraz sıkıcı ve basit gözüküyor. Bunu güzelleştirebilmek için kodunuza eklemeler yapabilirsiniz.

Mesela şehirlerdeki insan yoğunluklarını gösteren bir uygulama yapmak istiyorsunuz diyelim. 🌃 Şehirlerin yanına tenha, orta ve kalabalık yazabilirsiniz. Ancak bu yazılar şehirler ile aynı renkte olursa uygulamanız hiç güzel gözükmez.

Listedeki şehirlerin yanına gösterge ekleyebilmek için ve eklediğiniz göstergeleri renkli yapabilmek için aşağıdaki kodu yazmanız yeterli olacaktır:

Yukarıdaki kodda tek değiştirdiğimiz şey HStack ekleyip şehirlerin yanına kalabalıklık durumunu yazmak ve bu duruma .foregroundColor(.green) özelliğini kullanarak renk eklemek. Bu şekilde listeniz biraz daha ilginç gözükür. 😊

Array ile Liste Yaratmak

Fark ettiğiniz üzere listeler uzun olduğunda her bir eleman için bir HStack eklemek zor olur. 😕 Bunu çözebilmek için array kullanarak liste yaratabiliriz.

Böylece hem kodumuz basitleşmiş olur hem de aynı listeyi tek bir kod parçası ile kodlayabilmiş olduk. Listeyi oluşturduğumuz yerdeki id özelliği, listemize hangi elemanın ekleneceğini belirleyen ve ayırt eden özelliktir. Yani listemize eklenen şehirlerin durumları şehirlerin adlarına göre bilgisayar tarafından ayırt edilmektedir. Eğer (imkansız olabilir ama 🥴) iki tane aynı adı taşıyan şehir olabilseydi, id değerine .ad yerine başka bir özelliği atamak gerekirdi.

Listeye Eleman Eklemek

Artık bu kadar kısalttığımıza göre kodlarımızı, listemize daha fazla şehir ekleyebilmek için bir buton kodlayabiliriz. 😄 Bunun için öncellikle eklediğimiz şehirlerin sehirListesi array’ine eklendiğine emin olmalıyız. Bu yüzden sehirListesi array’inin başına @State ekleyelim.

Listemize daha fazla şehir ekleyebilmek için tabii ki bir fonksiyon yazmamız gerektir. Bu fonksiyon, şimdilik sehirListesi dizisinden bir şehir seçip sırasız bir şekilde başta yarattığımız listeye yeni bir eleman olarak ekleyecektir.

Fonksiyondan sonra uygulamamızın daha güzel gözükebilmesi için listemizin adını NavigationView gösterelim. 🎭 Hazır navigation konusu ile uğraşıyorken bir de sağ üste oluşturduğumuz sehirEkle() fonksiyonunu çalıştırmak için bir buton ekleyelim.

Navigation hakkındaki tüm değişiklikleri destekleyebilmek için oluşturduğumuz listeyi bir NavigaitonView içine alalım.

Uygulamanızı çalıştırdığınızda aşağıdaki gibi gözükecektir:

Sonuç kodunuz aşağıdaki gibi olmalıdır:

Uygulamanızı Bir Adım İleri Taşıyın!

Bu fonksiyonları listenizi tam anlamıyla tamamladıysanız ve uygulamanıza bir heyecan katmak istediğinizde kullanabilirsiniz.😜

ForEach: Listelerinizin herhangi bir cihaza uydurulmasını sağlar. Uygulamanızı Apple cihazlarının farklı modellerine göre şekillendirir. Uygulamanızın ekranda düzgün bir şekilde yansıtılmasını sağlar.

Aşağıdaki gibi kullanılır:

ListStyle: Listenizin görüntüsünü ve düzenini belirleyen bir protocol. Alt elemanları, yani listenizin stilleri, şunlardır: CarouselListSytle, DefaultListStyle, EllipticalListStyle, GroupedListStyle, InsetGroupedListStyle, InsetListStyle, PlainListStyle, SidebarListStyle.

Aşağıdaki gibi kullanılır:

Bir makalenin daha sonuna geldik! 🥳 🎊 Bu makalede SwiftUI’da nasıl listeler oluşturulabileceğini ve bu listelerin farklı özelliklerini konuştuk. Listeleri daha iyi anlayabilmek için şehirlerin nüfusunu gösteren bir uygulama yaptık. Bu uygulamayı daha geliştireceğiniz farklı uygulamalara referans olarak alabilmek için kaydedebilirsiniz! İyi kodlamalar! 😜

Bizi daha yakından takip etmek istiyorsanız, sosyal medya hesaplarımıza aşağıdan ulaşabilirsiniz.

Twitter | Instagram | Facebook

--

--