堆栈视图—拥抱抗压优先Kullanımı
Merhaba ,Buyazıda的抗压性ve拥抱优先konusunu elealıyoruz。 Tümcihazlarda tekilgörünümüyaratmaksöylendiğikadar zor mu? Cevabıbirlikte inceledikten sonra siz verin。 哈迪(Hadi)Başlayalım。
堆栈视图Nedir?
自动布局可从StackView iOS 9到hayatımızagirdi。
在属性中查看以下内容:在属性中查看以下内容:
Yatay Veya dikey olarak hizalamayapmanızısağlar:
Axis durumunagöreaşağıdakişekillerdehizalamayapmanızısağlar;
Axis Vertical durumu图标:领导,培训,填充中心
轴水平durumu图标:顶部,底部,填充中心
Aşağıdakikurallarıbelirleyerek boyutdağılımınıyapmanızısağlar:
填充: Yeni bir UIStackViewoluşturulduğundavarsayılandağıtımtürüolarak belirlenir。 Benim测试,用户界面UITextField和UIImageViewkullandımvebunlarıyatay bir UIStackViewgörünümündegruplandırıyorum。
Kontrollerinizi,分布ı填充olarak ayarlanan bir UIStackViewiçerisineyerleştirdiğinizde,kontrollerintümünüdoğalboyutlarındatutacak vealanıdoldurmakiçinbunlardan biriniuzatacaktır。 内容共享优先(CHP)内容共享优先(CHP)内容共享优先。 UITextField’larıarasınasekiz birimboşlukekledim,她的birinin boyutunugörebilirsiniz。
TümkontrollerinizaynıCHP’ye sahip ise Xcode,düzeninbelirsizolduğunuşikayeteder。 Düzeltebilmekiçinstackviewiçerisindekiobjelerinboyutlarıbelliolmalıveyaekranınboyutunun yetersizkalmasıdurumundaönceliğinkimdeolduğubelirtilmelidir。
大约3个月前到一天,再到最后一天,再见到低矮的古德·杰兰·卡兰·卡兰·卡斯拉米。
Başkabirörnek,我的文本太长了,我的文本太高了,我的文本就太低了。
Sonuçolarak stackviewiçindekinesneler kendiözelliklerini(genişlik,yükseklik,拥抱veya压缩değerleri)baz alarak stackView’i tam olarak doldurmakzorundadırlar。
填充等于 :在她的控件中添加UIStackView。 Mümkünsekontrollerarasındakiboşluğuntamamıkullanılacaktır。 ButürleCHP’ninönemiyoktur,请她的控诉aynıboyuttadır。
按比例填充 :保留所有权利。🙂保留所有权利。tele tele。。。。。。。。。。。。 UIStackView,尺寸为“ınızbüyüyüpküçüldükçe”,尺寸为kontrollerin birbiriyleorantılıolarakaynıorandaboyutlanmasınısağlar。 Testimi UITextField’lar yerine UILabel kullanarakdeğiştirdim。
Dağılımın纵向风景肖像:
Gördüğünüzgibi,farklıdüzenboyutlarıiçinimageView velabel’larınoranlarıkorunur。
均等间距 :Budağıtımtürü,kontrollerin她的女友arasındaeşitaralıkbırakacakve kontroller kendisini yenidenboyutlandırmayacaktır。 布努(Bunu),埃塞克特勒(veike)和其他人(görüntüler)在一起。
平等居中 :儿子olarak,儿子dağıtımtürününbirörnekolmadangörmesibiraz zor。 Kontrollerin merkezlerinieşitolarakuzatacaktır。 布努·格斯泰梅克·伊辛(Bunugöstermekiçin),她的小男孩kontrolün女士kirrmızıdikeyçizgilerçizdim。 Kırmızıçizgilerarasındakimesafeeşitaralıklarlayerleştirilir。
Aralardakiboşluğubelirler:
Bir UIStackView可以查看更多信息。 Bazıları,child’larınbüyüklüğünükontrol etmehakkındagörüşbildirmişlerdir,diğerleriise,child’larınistedikleri kadarbüyükolmasınıvefarklışekillerdeuzamassııısağlamaya。
优先nedir吗?
优先权限制优先权。 界面生成器üzerindenherhangi bir约束tanımladığınızda默认olarak优先级1000设置edilir。 优先级1 ile 1000arasındadeğerleralmaktadır。 Deüerbüyüklüğünegöreöncelikartar。 货币1000约束zorunlu bir约束。 1或999个优先级değerinesahip约束’ler iseoptional’dır。 布局oluşturulurken,uygunkoşullaraltında,可选约束leriçerisindedoğrudenklem elde edilene kadar优先权yüksekten和düşüğekadar teker tekersağlamasıyapılarakdenenir。
您可以在下摆1000优先下摆到999优先购买Saaki kiuralolduğunuvarsayalım。 1000优先ile安全区’ya,999优先ile superview’ebağlıolsunuz。 安全区o o birsürümdeçalıştırıldığında1000优先’li kuralgerçekleştirilebildiğiiçin视图,安全区’yabağlıolarakaçılacaktır。 安全区域desteklenmeyen birsürümde(<iOS 11)安全视图1000优先'likuralıgerçekleştiremediğiiçinbir sonrakikuralınolupolmadığınıkontrol edecek。 999 priority'li kural superview'ebağlıolaraktanımlandığıiçinbunugerçekleştirerekview'i busürümiçinsuperview'ebağlayacaktır。
UILayoutPriority’nin 4 adet优先级seviyesişöyledir:
低 (250)
中 (500)
高 (750)
必填 (1000)
内在内容大小
Bazıview’lariçeriğinegörekendiliğindenbir boyuta sahiptir。 Bunuonların内在内容大小’ıolarakadlandırılıyor。 UIButton和UILabel Buna birörnektir。 İkisindedeiçerikolarak bulunan title’a ek olarak ufak marginler ileboyutlandırılmaktadır。 界面生成顶部标签顶部顶部水平约束tanımıyaparsanızbaşkahiçbir约束ihtiyaçduymayacaktır。
Yukarıdakiörnekte视图içersinde2 adet butonum var。 Soldansağdanzorunlu constraint’lertanımlanmışdurumda ve 2’siarasında8 point lik bir约束bulunuyor。 Ancakiçeriğinboyutunualdığındanburada bir冲突oluşuyor。
Buörnektebutonlarınsağında,solunda vearalarındabelli biruzaklıkolmak zorunda。
我在冲突中的冲突:
Butonlardan Birine sabit boyut verilebilir
Buradaki练习2。butona sabit birgenişlikverdik ve birinci butoniçeriğikendiliğindensıkıştıve约束ortadankalktı。
AralarındakiboşlukKüçükEşit(≤)olaraktanımlanabilir
Aradakiboşluğu8 pointeeşitveya dahaküçükolabileceğinisöylediğimizdegörseldekigibiiçerikboyutunagöregenişlikalan butonlariçigeegeçti。
Bunlara benzerçözümlerüretmekmümkünancak bu gibi durumlarda hangi contentin bizimiçindahaöncelikliolduğunakarar vermemizlazım。 Buyüzdenpriority yine devreye giriyor
Buradakarşımıza 含量 ve 含量耐压缩性优先级 。
- 内容拥抱优先级: Sarılma
Buöncelik约束lerarasında优先权sibüyükolanınküçükolanıniçeriğinegörebüyümesineizin vermiyor。 Yeterli olan boyutunasarılıyor。 - 内容压缩抗性优先级: Sıkıştırma
Buöncelikise约束器arasında优先权büyükolanınkendi uygun boyutunu korumakiçinküçükolanısıkıştırabilmesinisağlıyor。
您可以在Pekitümbunlarınbizimörneğimizile nealakasıvar吗?
Enbaşadönecekolursakşöylebir冲突alıyoruz。 Buradakihatanıntam sebebi 2内容抗压缩性(CCR)优先级在内容运行时具有hangisinin的内容。 Burada警报按钮2次内容拥抱优先(CHP)信息优先权(CHP)。
gibi按钮2的按钮2的按钮1 e的galanye kalan alandoğrultusunda的按钮。 Olayıdaha iyi anlamakadınabirde Button 2’nin字体大小’ını15 10 23’ealıpsonucu inceleyelim:
苏努克
Autolayoutişlemlerindeyapmamızgerekenbirçokişlemigördüğünüzgibi stackview hallediyor。 Gerekli yerlerdekullanıldığında,yuri bir obje eklenmesi durumunda zamankaybıoluşturandurumlardankaçınılmışolunur。
Bir sonrakiyazıdagörüşmeküzere🤚
侯赛因·巴加纳(HüseyinBagana)