Sobes.tech
Middle+

Кысууучу каршылыкка артыкчылык касиеттеринин эмне кереги бар?

sobes.tech AI

AIден жооп

Көрсөтүү башка көрүнүштөргө салыштырмалуу, жетиштүү бош орун болбогондо, кысуу жөндөмдүүлүгүн аныктоо үчүн колдонулат:

Compression Resistance Priority өзгөчөлүктөрү:

  • Ар бир өлчөм (Horizontal, Vertical) өзүнүн артыкчылыгы бар.
  • Маанилүү маанилердин диапазону: 1 ( эң төмөнкү) чейин 1000 ( эң жогорку, UILayoutPriorityRequired).
  • Жогорку артыкчылыктагы көрүнүш төмөнкү артыкчылыктагы көрүнүшкө караганда көбүрөөк кысууга каршы тура алат.
  • 1000 артыкчылык көрүнүш эч качан анын ички мазмун өлчөмүнөн төмөн кысылбайт, эгер мүмкүн болсо.

Колдонуу:

  • Динамикалык текст менен Label: Эгер сизде ар кандай узундуктагы тексттерди көрсөтө алган бир нече UILabel болсо, артыкчылыктарды колдонуу кайсы лейб биринчи кысылат экенин аныктоого жардам берет, эгер алар экранга сыйбаса.
  • Түймөлөр: Тексттин кесилбеши үчүн, анын UILabel үчүн жогорку артыкчылык Compression Resistance Priority коюңуз.
  • Кыйынча макеттер: Кыйынча Auto Layout макеттеринде, артыкчылыктар кеңдик жетишпегенде чечимдерди кабыл алууда колдонулат.

Мисал: Горизонталдык стекте эки UILabel.

let label1 = UILabel()
label1.text = "Кыска текст"
label1.backgroundColor = .red

let label2 = UILabel()
label2.text = "Өте, өтө, өтө узун текст"
label2.backgroundColor = .blue

let stackView = UIStackView(arrangedSubviews: [label1, label2])
stackView.axis = .horizontal
stackView.distribution = .fill // Кеңдикти толуктайт, бирок мазмұнду кысу мүмкүн

// Бөлөкчө артыкчылыктар бирдей (адатта 750)
// Эки лейб да пропорционалдуу кысылат

// label1 үчүн жогорку артыкчылык коюу
label1.setContentCompressionResistancePriority(.required, for: .horizontal) // 1000
// label2 750 менен калат

// Эми, кеңдик жетишпегенде, label2 күчөп кысылат,
// label1 өз өлчөмүн сактап калуу үчүн:

Content Hugging Priority менен байланышы:

  • Content Hugging Priority — өзүнүн ички мазмун өлчөмүнөн көбүрөөк кеңейүүнү канчалык каалайт.
  • Жогорку Content Hugging Priority = көрүнүш өз мазмунун "мөөрөйт" жана кеңейбейт.
  • Жогорку Compression Resistance Priority = көрүнүш кысууга каршы турушу жана кысылбайт.

Бул эки өзгөчөлүк бирге иштешип, Auto Layout туура бөлүштүрүүгө жардам берет.