Her alt görünüm için (düğme), içeriğin boyunun alt görüntünün yüksekliğinden büyük veya ona eşit olması gerektiğini belirten bir kısıtlama gerekir. Bu kısıtlamayı UILayoutPriorityRequired
(zaten varsayılan olan) gibi yüksek bir öncelik verin.
Daha sonra, sıfıra eşit bir yüksekliğe sahip olması gerektiğini belirterek, muhafazanın yüksekliğine bir kısıtlama daha ekleyin. Bu kısıtlamayı UILayoutPriorityLow
gibi düşük bir öncelik verin. Otomatik düzen, tatmin edilmeyen kısıtlamaların hatasını en aza indirmeye çalıştığı için, tüm yüksek öncelikli kısıtlamalarını hala karşılarken konteynırı mümkün olduğunca kısa hale getirecektir.
this gist ürününe bir örnek ekledim. Bu sonuç üretir:
mavi manzarası yükseklikleri sabit. Ten rengi görünüm, mavi görünümlerin süper görüntüsüdür ve yüksekliği yukarıda açıkladığım gibi sınırlandırılmıştır. Her bir alt görüntünün tabanını tutucunun tabanına sabitledim, ancak bunun yerine üst kısımları veya Y merkezlerini iğneleyebilirsiniz.
Harika, bu işe yaradı. Yine de biraz kafam karıştı. Konteynere birden fazla yükseklik kısıtlaması eklememiz mümkün mü? Eğer konteynerin yüksekliğinin subview1'e ve ayrıca subview2'ye eşit olması gerektiğini söylersem, neden ikisi çatışmaz? Ayrıca, son düşük öncelikli kısıtlamanın arkasındaki mantığınızı anlamıyorum. Onsuz denedim ve bu da işe yaradı. Bu bir güvenlik önlemi mi? – Snowman
Her iki kısıtlamaya uygun bir düzen varsa, kısıtlamalar çakışmaz. Gerçekten de, çelişen kısıtlamaların tanımı, ikisinin de eş zamanlı olarak karşılanamamasıdır. Alt görünümlerinizin 60, 80 ve 100 yükseklikleri olduğunu varsayalım. Daha sonra * 100 veya daha fazla herhangi bir * konteyner yüksekliği, alt görünüm yükseklikleri ve konteyner yüksekliği arasındaki kısıtlamaları karşılayabilir, dolayısıyla kısıtlamalar birbiriyle uyuşmaz. –
Herhangi bir konteyner yüksekliğinin en az 100'ü, daha önce tanımladığım alt görünümlerden kaynaklanan kısıtlamaları tatmin edeceğinden, bu kısıtlamalar kendiliğinden belirsizdir: Birden fazla tatmin edici çözüm vardır. Otomatik düzen, belirsizlik hakkında şikayet etmez ve istediğiniz düzeni size verebilir. Ancak uygulamanıza veya iOS'unuza yapılan bazı değişiklikler, otomatik yerleşimin gelecekte istemediğiniz bir düzen vermesini sağlayabilir. Ekstra, düşük öncelikli kısıtlama sizi bundan korur. –