Sobes.tech
Middle+

'Sıkıştırma Direncine Öncelik' özellikleri ne işe yarar?

sobes.tech yapay zeka

AI'dan gelen yanıt

Ekseni, yetersiz boş alan durumunda diğer görünümlere kıyasla ne kadar dirençli olacağını belirler.

Sıkıştırma Direnci Önceliği özellikleri:

  • Her boyut (Yatay, Dikey) kendi önceliğine sahiptir.
  • Değer aralığı: 1 (en düşük) ile 1000 (en yüksek, UILayoutPriorityRequired).
  • Daha yüksek önceliğe sahip görünüm, daha düşük öncelikli görünümden daha fazla sıkıştırmaya direnç gösterecektir.
  • 1000 önceliği, görünümün mümkünse herhangi bir durumda içeriğin kendi boyutunun altına sıkıştırılmayacağını garanti eder.

Kullanım:

  • Dinamik metin içeren etiketler: Birden fazla UILabel'in farklı uzunlukta metin gösterebildiği durumlarda, önceliklerin kullanılması, ekran dışına sığmadığında hangi etiketin önce sıkıştırılacağını belirlemeye yardımcı olur.
  • Düğmeler: Bir düğmedeki metnin kesilmemesi için, UILabel için yüksek Sıkıştırma Direnci Önceliği ayarlanabilir.
  • Karmaşık düzenler: Karmaşık Auto Layout düzenlerinde, öncelikler, alan yetersizliği durumunda belirsizlikleri çözmek için kullanılır.

Örnek: Yatay bir yığında iki UILabel.

let label1 = UILabel()
label1.text = "Kısa metin"
label1.backgroundColor = .red

let label2 = UILabel()
label2.text = "Çok çok uzun metin"
label2.backgroundColor = .blue

let stackView = UIStackView(arrangedSubviews: [label1, label2])
stackView.axis = .horizontal
stackView.distribution = .fill // Alanı doldurur, ancak içeriği sıkıştırabilir

// Varsayılan olarak öncelikler aynıdır (genellikle 750).
// Her iki etiket de orantılı olarak sıkıştırılır.

// label1 için yüksek öncelik ayarlayın
label1.setContentCompressionResistancePriority(.required, for: .horizontal) // 1000
// label2, varsayılan önceliği korur (750)

// Şimdi alan yetersiz olduğunda, label2 daha fazla sıkıştırılır,
// böylece label1 boyutunu korur.

İçerik Sarma Önceliği ile ilişkisi:

  • Content Hugging Priority: Bir görünümün, ek boş alan olduğunda, kendi içeriğinin boyutunun ötesine genişlemeye ne kadar direnç göstereceğini belirler.
  • Yüksek Content Hugging Priority = görünüm, içeriği "kucaklar" ve genişlemez.
  • Yüksek Sıkıştırma Direnci Önceliği = görünüm, sıkıştırmaya direnç gösterir ve küçültülmez.

Bu iki özellik, Auto Layout'un görünüm arasındaki alanı doğru şekilde dağıtmasına yardımcı olmak için birlikte çalışır.