Alt Görünümleri Ölçme
Düzenleme sırasında alt görünüm boyutlarını sorgulayın.
Alt Görünümleri Ölçme, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.
Ölçüm Düzeni Yönlendirir
Alt görünümleri yerleştirebilmeden önce onları ölçmeniz gerekir. SwiftUI düzeni bir uzlaşmadır: üst öğe boyutlar önerir, alt öğeler yanıt verir ve siz yanıtları uzlaştırırsınız.
Alt Görünüme Boyutunu Sormak
Subviews içindeki her vekil, belirli bir ProposedViewSize için sizeThatFits(_:) çağrısını yanıtlar. Vekil, alt görünümün bu öneri altında kaplayacağı boyutu döndürür.
let size = subview.sizeThatFits(.unspecified)Üç Yoklama Önerisi
Bir alt görünümün esnekliğini öğrenmek için onu üç şekilde yoklayın: .zero en küçük boyutunu, .infinity en büyük boyutunu ve .unspecified ideal boyutunu ortaya çıkarır.
let minSize = subview.sizeThatFits(.zero)
let maxSize = subview.sizeThatFits(.infinity)
let ideal = subview.sizeThatFits(.unspecified)Belirli Bir Genişlik Önermek
Satır kaydıran metin için belirli bir genişlik önerin ve yüksekliği nil bırakın. Alt görünüm, bu genişlikte ihtiyaç duyduğu yüksekliği bildirir.
let proposal = ProposedViewSize(width: 200, height: nil)
let fit = subview.sizeThatFits(proposal)layout Önceliği
Her alt görünüm, priority değerini (.layoutPriority ile ayarlanır) dışa sunar. Alan dar olduğunda, daha yüksek öncelikli alt görünümlere ideal boyutlarını önce verin.
for subview in subviews {
let p = subview.priority
// distribute space to higher priority first
}Özel Değerleri Okuma
Alt görünümler, LayoutValueKey aracılığıyla türü belirli veriler taşıyabilir. layout, yerleştirmeyi etkilemek için subview[MyKey.self] değerini okur; örneğin her öğeye özel bir boşluk değeri sağlayabilir.
private struct RankKey: LayoutValueKey {
static let defaultValue: Int = 0
}
let rank = subviews[0][RankKey.self]Bir layout Değeri Ayarlama
Bir görünüm, layout değerini layoutValue(key:value:) değiştiricisiyle ayarlar; böylece alt görünümler layout'unuza ipuçları iletebilir.
Text("Featured").layoutValue(key: RankKey.self, value: 10)Alt Görünümler Arasındaki Boşluk
Alt görünümler spacing tercihlerini dışa sunar. Bir eksen boyunca bitişik iki alt görünüm arasındaki önerilen boşluğu almak için subview.spacing.distance(to:along:) kullanın.
let gap = subviews[0].spacing.distance(
to: subviews[1].spacing, along: .horizontal)Boyutları Biriktirme
Yatay bir layout, alt görünümlerin genişliklerini toplar ve en büyük yüksekliği alır. Tüm alt görünümleri önce ölçmek, herhangi birini yerleştirmeden önce kapsayıcı boyutunu hesaplamanızı sağlar.
let sizes = subviews.map { $0.sizeThatFits(.unspecified) }
let totalWidth = sizes.reduce(0) { $0 + $1.width }
let maxHeight = sizes.map(\.height).max() ?? 0Yerleştirme Sırasında Yeniden Ölçme
placeSubviews içinde, konumların bildirdiğiniz değerlerle eşleşmesi için yeniden ölçüm yapmanız (veya önbelleğe alınmış boyutları yeniden kullanmanız) gerekir. Ölçümler gerçek çizimler değil, düşük maliyetli vekil çağrılardır.
func placeSubviews(in bounds: CGRect, proposal: ProposedViewSize, subviews: Subviews, cache: inout ()) {
for s in subviews {
let size = s.sizeThatFits(.unspecified)
// use size to position s
_ = size
}
}Üst Görünüm Önerisine Uyma
Aldığınız öneriye her zaman uyun. Üst görünüm sabit bir genişlik öneriyorsa, alt görünümleri bu genişliğin içine yerleştirin; sessizce taşmayın, aksi takdirde layout kırpılır.
let containerWidth = proposal.width ?? .infinityKısa Kontrol: Ölçme
Alt görünüm ölçümü konusundaki anlayışınızı sınayın.
Özet: Alt Görünümleri Ölçme
Ölçüm, özel layout'un temelidir. En küçük, en büyük ve ideal boyutları öğrenmek için alt görünümleri .zero, .infinity ve .unspecified ile yoklayın; sarmalanan içerik için somut genişlikler önerin ve layout önceliği ile boşluk tercihlerine uyun.
Özel LayoutValueKey değerleri, alt görünümlerin ipuçları iletmesini sağlar. Bildirilen boyut ile yerleştirmenin her zaman uyuşması için her iki protokol yönteminde de tutarlı ölçüm yapın.
Sıkça Sorulan Sorular
“Alt Görünümleri Ölçme” dersi ücretsiz mi?
Evet — “Alt Görünümleri Ölçme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.
“Alt Görünümleri Ölçme” dersinde ne öğreneceğim?
Düzenleme sırasında alt görünüm boyutlarını sorgulayın. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Swift Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Alt Görünümleri Ölçme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Layout Protokolü Temelleri
- Alt Görünümleri Ölçme
- Akış Düzeni Oluşturma
- Düzen Önbelleği ve Performans