Sobes.tech
Middle

Масъулоти 'Content Hugging Priority' дар таҳияи iOS чист?

sobes.tech AI

Ҷавоб аз AI

Хусусиятҳои Content Hugging Priority ва Content Compression Resistance Priority дар Auto Layout муайян мекунанд, ки чӣ гуна тамошоҳо бояд вокуниш нишон диҳанд, вақте ки мундариҷаи онҳо мехоҳад камтар ё бештар ҷойро ишғол кунад, аз он ки дастрас аст.

Content Hugging Priority: муайян мекунад, ки чӣ қадар тамошо "мурғз" мекунад, ки мундариҷаи худро. Ҳамон қадар баландтар бошад, тамошо кӯшиш намекунад, ки дароз шавад, то ҷойи холиро пур кунад.

Content Compression Resistance Priority: муайян мекунад, ки чӣ қадар тамошо муқовимат мекунад ба фишурдан. Ҳамон қадар баландтар бошад, тамошо кӯшиш намекунад, ки кам шавад, агар мундариҷаи он бештар ҷойро талаб кунад, аз он ки дастрас аст.

Ин хусусиятҳо барои ҳалли муноқишаҳо дар Auto Layout истифода мешаванд, вақте ки тамошоҳо андозаи равшан надошта бошанд ё онҳо бо андозаи мундариҷа зид бошанд.

Масалан:

  • UILabel бо матни дароз ва Content Hugging Priority баланд намеёбад, ки барои пур кардани контейнер дароз шавад, агар матн кам бошад. Агар матн зиёд бошад ва тамошои ҳамсоя Content Compression Resistance Priority пасттар дошта бошад, он фишурда мешавад.
  • UIImageView бо Content Hugging Priority баланд, тасвири хурдро барои пур кардани фазои дастрас дароз намекунад.
// Масалан, танзим кардани афзалиятҳо дар код
let label = UILabel()
label.setContentHuggingPriority(.defaultHigh, for: .horizontal) // Афзалият баланд барои "гушоиш" дар уфуқӣ
label.setContentCompressionResistancePriority(.required, for: .horizontal) // Афзалият талабот барои муқовимат ба фишурдан дар уфуқӣ

defaultLow, defaultHigh, required арзишҳои стандартии афзалиятҳо мебошанд. Мумкин аст, ки дигар арзишҳо аз 1 то 1000 истифода шаванд. required ҳамеша 1000 аст.

Истифодаи ин хусусиятҳо ба Auto Layout имкон медиҳад, ки қарорҳо дар бораи андозаи тамошоҳо бар асоси мундариҷа ва афзалиятҳо гирифта шаванд, ки ба тартиби чандир ва мутобиқсозии унсурҳои интерфейс кӯмак мекунад.