Sobes.tech
Middle+

Ի՞նչ է նշանակում 'Կայունության առաջնահերթություն ճնշման դիմադրության' հատկությունները։

sobes.tech AI

Պատասխան AI-ից

Նորոշում է, թե որքան դժվար կլինի տեսքը փոքրացնել մյուս տեսքերին համեմատ, երբ ազատ տարածք չի բավարար:

Compression Resistance Priority հատկությունները՝

  • Ամեն մի չափչափ (հորիզոնական, ուղղահայեա) ունի իր առաջնահերթությունը:
  • Տարածման տիրույթը՝ 1 (նվազագույն) մինչև 1000 (առավելագույն, UILayoutPriorityRequired):
  • Բարձր առաջնահերթություն ունեցող տեսքը ավելի ուժեղ կպայքարի սեղմման դեմ, քան ցածր առաջնահերթություն ունեցողը:
  • 1000 առաջնահերթությունը երաշխավորում է, որ տեսքը չի կրճատվի իր intrinsic content size-ից, եթե դա հնարավոր է:

Օգտագործում՝

  • Դինամիկ տեքստով Label: Եթե ունեք մի քանի UILabel, որոնք կարող են ցուցադրել տարբեր երկարության տեքստեր, առաջնահերթությունների օգտագործումը օգնում է որոշել, թե որ լեյբը կկրճատվի առաջինը, եթե տեղ չլինի:
  • Կոճակներ: Որպեսզի տեքստը կրճատման չհասնի, կարող եք բարձր առաջնահերթություն սահմանել Compression Resistance Priority-ի համար:
  • Ավտո Layout բարդ մոդելներ: Բարդ Auto Layout մոդելներում առաջնահերթությունները օգտագործվում են տարածքի անհասկանալիությունները լուծելու համար:

Օրինակ՝ երկու UILabel հորիզոնական StackView-ում:

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-ը որոշում է, թե որքանով է տեսքը հակված իր intrinsic content size-ից մեծանալ ավելորդ տարածքում:
  • Բարձր Content Hugging Priority = տեսքը "կրկնում" է իր բովանդակությունը և չի ընդլայնվում:
  • Բարձր Compression Resistance Priority = տեսքը "դիմադրում" է սեղմմանը և չի կրճատվում:

Այս երկու հատկությունները միասին օգնում են Auto Layout-ին ճիշտ տարածք բաժանել։