İnsanlar şikayet ediyorlar neden "olduğunu hiç anlamıyorum Kenar boşlukları önce iOS 8. şey üzerinde salt çökmesine neden olacak "
Bir xib dosyasında veya görsel marjı kıyasla söz konusu kısıtlamaları ayarlama ETMEZ -iOS7 ilgili uygulama kazasında yapmak ve bu ETMEZ sizin iOS7 cihazınızda bir UI fark yaratmak ne, sürece dokunmayın olarak UIView.layoutMargins
ve UIView.preservesSuperviewLayoutMargins
kodunuzda özelliklerini.
İOS8'deki Kenar Boşlukları Nedir
Düzen kenar etrafında dolgu temsil iç a UIView
bir boşluk bir görünüm ve subview kenarı arasında kalan sağlamak için - subviews yerleştirirken düzeni sistemi kullanabilmektedir. Bu açıdan, CSS'deki bloklarla ilişkili dolgu özelliğine çok benzer.
Varsayılan olarak, UIView
a'nın her iki tarafında 8 puntoluk düzen marjları vardır ve bu Arayüz Oluşturucu'da değiştirilemez . Ancak, UIView.layoutMargins
kodu yalnızca iOS8'de bulunan kodda ayarlayarak bu değerleri ayarlayabilirsiniz.
IB'yi Editör> Tuval> Yerleşim Dikdörtgenlerini Göster ile kenar boşluklarını görüntülemeye alabilirsiniz :
Kenar boşlukları, görünümlerinizi ve alt görünümlerinizi düzenlemenize yardımcı olmak için kullanılabilir. Her UIView
biri varsayılan olarak kenar boşluklarıyla gelir, ancak yalnızca bir kenar boşluğu ile ilgili bir kısıtlama ayarladığınızda görünüm yerleşimini etkiler.
Kenar Boşlukları nasıl kullanılır?
Interface Builder'da kenar boşluklarını kullanmanın tek yolu , kısıtlamalarınızı yapılandırırken Kenar boşluğuna göre seçeneğini işaretlemektir. Bu, görünümümü düzenlerken sınırınızı kenarlar yerine kenar boşluklarını kullan seçeneğine yönlendirirsiniz .
Bir görünüm ve alt görünümü arasında önde gelen bir kısıtlama oluşturmanın dört farklı yoluna bakalım. İncelediğimiz her kısıtlama için açıklanan ilk ilişkilendirme alt görünümün öncüsü , ikincisi ise denetimin öncüsü olacaktır . Dikkat etmek istediğiniz şey, her bir sınırlama ucunun Kenar boşluğuna göreceli seçeneğinin kontrol ve işaretini kaldırmasıdır , çünkü bu, kısıtlamanın kenar boşluğuna mı yoksa kenarın kenarına mı bağlı olduğunu tanımlar.
- İlk öğe (işareti kaldır), ikinci öğe (kontrol): Bu durumda, alt görünümün sol kenarının denetimin sol kenar boşluğuna (bu resimde gösterildiği gibi) hizalanması gerektiğini beyan ederiz.
- İlk öğe (işaretini kaldır), ikinci öğe (işaretini kaldır): Her ikisi de kenar boşluğu değil kenar kullanır . Bu durumda, alt görünümün sol kenarının denetimin sol kenarına hizalanması gerektiğini beyan ederiz.
- İlk öğe (kontrol), ikinci öğe (işaretini kaldır): Bu durumda, alt görünümün sol kenar boşluğunun denetimin sol kenarına hizalanması gerektiğini beyan ederiz. Bu tür bir düzen aslında alt görünümü denetimle örtüşür.
- İlk öğe (kontrol), ikinci öğe (kontrol). Bu hem durum 2 ile aynı etkiye sahiptir, çünkü hem alt görünüm hem de denetim aynı varsayılan kenar boşluğuna sahiptir. Alt görünümün sol kenar boşluğunun denetimin sol kenar boşluğuna hizalanması gerektiğini beyan ediyoruz.
Marjlar hakkında iyi olan nedir
Bu yeni özellik (iOS8), yalnızca kenar boşluklarını kullanmaya karar verirseniz kullanıcı arayüzü geliştirmesini etkiler.
Kenar boşluklarını kullanarak, tek bir mülkün değerini değiştirerek paylaşılan bir denetim ile ortak bir ilişki paylaşan birden çok alt görünümün yerleşimini ayarlayabilirsiniz. Bu, ilişkili tüm kısıtlamaları sabit değerlerle ayarlama konusunda açık bir kazançtır, çünkü tüm boşlukları güncellemeniz gerekiyorsa, her bir değeri tek tek değiştirmek yerine, denetimin marjını tek bir satırla güncelleyerek ilgili tüm yerleşimi aynı anda değiştirebilirsiniz. bunun gibi kod:
self.rootView.layoutMargins = UIEdgeInsetsMake(0, 50, 0, 0);
Bu yararı göstermek için, aşağıdaki durumda tüm alt görüşlerin sol kenarları denetimin sol kenarına hizalanır. Böylece, denetimin sol marjını değiştirmek tüm alt görünümleri aynı anda etkileyecektir.