SwiftUI: AnyView

AnyView, belirli bir görünüm hiyerarşisinde kullanılan görünüm türünü değiştirmeye izin verir. Gelin bu yapıyı hep birlikte yakından inceleyelim.

Ufuk Köşker
TurkishKit
3 min readSep 4, 2020

--

Hadi Başlayalım

Yeni bir SwiftUI projesi açalım ve ContentView struct yapımızı aşağıdaki gibi kodlayalım.

isLoggedIn adında bir değişken oluşturduk. Bu değişkenin türü Bool ve true yada false değerlerini tutacak.

isLoggedIn eğer true ise Text(“Giriş Yaptı”) nesnesi geri döndürülecek.
eğer false is Text(“Giriş Yapmadı”) nesnesi geri döndürülecek.

Uygulamamızı Çalıştıralım

Uygulamamıza baktığımızda Giriş Yapmadı yazısını görüyoruz. Bunun sebebi;

değişkenin değeri false. Bunu true yapalım.

Harika if — else yapımız çalışıyor.

Örneğin isLoggedIn true olduğu zaman “Giriş Yaptı” yazmasın bir Image göstersin istiyoruz. Hadi bunu yapalım.

Image nesnesi oluşturduk ve systemName: parametresine bir SFSymbols ikon adını girdik.
.resizable() fonksiyonu ile ikonumuzu boyutlandırılabilir hale getirdik.
.frame() fonksiyonu ile yükseklik ve genişlik verdik.

Hatamıza Geri Dönelim

Dönüş türlerinin bir birleriyle eşlemediğini bize bildiren bir hata ile karşı karşıyayız. Bu sorunu AnyView ile çözeceğiz.

Sorunu Nasıl Çözdük?

AnyView içerisinde oluşturulan nesnenin türü unutulmaya zorlanır. Bu sayede aynı türden oluşturulmuş nesneler gibi davranır.

Önemli

AnyView’i kullanmanın performans maaliyeti vardır. Bu yüzden sık sık kullanılmaması gerekir. Bunun yerine Group düzenini kullanabilirsiniz.

Bir makalemizin daha sonuna geldik. Bu makalemizde AnyView yapısının kullanımını ve nasıl çalıştığını ele aldık. Gelecek olan makalemizde Group düzenini ele alacağız. İyi kodlamalar dilerim… 🤓

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

Twitter | Instagram | Facebook

--

--