SORU
25 EKİM 2012, PERŞEMBE


Eşit aralıklı birden çok görünüm kapsayıcı bir görünüm içinde

Otomatik Düzen hayatımı zorlaştırıyor. Teoride, açıldığında çok yararlı olacaktı, ama her zaman mücadele gibi görünüyor.

Demo proje yardım bulmak için yaptım. Herkes görüş arasındaki boşluk görünüm yeniden boyutlandırıldığında zaman veya eşit azaltmak için nasıl biliyor mu?

Burada üç etiket (el ile aralıklı dikey):

image1

Ne istediğimi ben onları döndürmek zaman aralığı (görünüm boyutu değil) eşit olarak yeniden boyutlandırmak için. Varsayılan olarak, üst ve alt görünümleri merkezine doğru daraltalım:

image2

CEVAP
17 EYLÜL 2014, ÇARŞAMBA


BAK, HİÇBİR TUTUCULAR!

Benim orijinal cevap, özellikle @Rivera'nın yararlı öneriler, yorumlar bölümünde önerilere dayanarak, benim orijinal cevap basitleştirdim.

Gif ne kadar basit olduğunu göstermek için kullanıyorum. Gıf'ler yararlı bulacağını umuyorum. Durumda gıf'ler ile ilgili bir sorun var sadece, eski cevap aşağıda düz ekran görüntüleri dahil ettik.

Talimatlar:

1)Düğme veya etiket Ekle. 3 düğme kullanıyorum.

2)Merkezi Ekle x superview için her düğmeye kısıtlama:

enter image description here

3)Alt düzen kısıtlama her düğme Ekle kısıtlaması:

enter image description here

4)Kısıtlaması şöyle: #3 yukarıda eklenen ayarlayın

a)seçin kısıtlaması, b)sabit (0 set), Kaldır c)aşağıdaki gibi çarpan değişim düğme sayısı 1 ve en üstten başlayarak, çarpanı olarak ayarlayınbuttonCountPlus1:1ve sonrabuttonCountPlus1:2ve son olarakbuttonCountPlus1:3. (Eski cevap aşağıda, eğer ilgileniyorsanız) bu formül nereden bulduğumu açıklamak.

enter image description here

5)Burada bir demo çalışıyor!

enter image description here

Eğer düğmeler büyük Yükseklikleri zaman kısıtlaması düğmesi altından olduğu için bunu telafi etmek için sabit değer gerekir. not:


Eski Cevap


Ne rağmen Apple'ın docs ve Erica Haluk Aytekin mükemmel kitap (Otomatik Düzen Açıklığa Kavuşturdude ki, eşit görüş alanı için mümkündürolmadantutucular. Bu çok basit İB yapmak ve öğeleri herhangi bir sayı için kod alanı için eşit diliyorum. Tüm ihtiyacınız olan bir matematik formül denir "bölümüne formülü". Daha basit açıklamak daha da zordur. İB olarak göstererek elimden geleni yapacağım, ama bir o kadar da kolay bir kod.

Söz konusu örnekte, olur

1) Her etiketin merkezi bir kısıtlama var ayarlayarak başlayın. Bu çok basittir. Sadece kontrol altına her etiket sürükleyin.

De kullanacağız diğer kısıtlama ekleyebilirsiniz yılından bu yana 2) shift tuşunu basılı Tutun, yani, "alt düzen kılavuzu için alt alan".

3) "alt düzen kılavuzu için alt alanı" ve "yatay kapta center" seçeneğini Seçin. Tüm 3 Etiketler için bunu yapın.

Hold down shift to add these two constraints for each label

Temelde, biz alırsak etiketi olan koordinat dileğiyle belirlemek ve ayrı ayrı toplam sayısı etiketler artı 1, o zaman biz bir numara biz eklemek için İB almak için dinamik yer. Formül basitleştirilmesi ediyorum, ama aynı zamanda Yatay Boşluk ya da dikey ve yatay ayar için kullanabilirsin. Süper güçlü!

Burada bizim çarpanları.

Label1 = 1/4 = .25,

Label2 = 2 ve 4 = .5,

Label3 = 3/4 = .75

(Edit: @Rivera sadece oranları doğrudan çarpan alanında kullanmak, ve matematik ile böyle büyük mükafat!) yorumladı

4) Bu Yüzden, Label1 seçin ve alt kısıtlamayı seçmesine izin verin. Bunun gibi: enter image description here

5) "" Öznitelikleri denetiminde. İkinci Öğe Seçin

6) seçin açılır "Tersine, birinci ve ikinci". item

7) sürekli Sıfır ve wC hAny değer. (Eğer ihtiyacınız varsa bir ofset buraya ekleyebilirsiniz).

8) Bu önemli parçasıdır: çarpan alanında ilk çarpan 0.25 ekleyin.

Arada 9) üst "" etiketin y merkezine olsa "merkezi. CenterY" İlk öğe ayarlayın Bu görünmelidir.

enter image description here

10) her etiket için bu işlemi Tekrarlayın ve ilgili çarpan takın: Label2 ve Label3 için 0.75 0.5. Burada tüm kompakt cihazlar ile tüm yönlerde, son ürün! Süper basit. Çözümler bir sürü bilgi içeren bir çok bakıyordum, ve tutucular. Bu kadar uzak ve bu konuda gördüğüm en iyi çözümdür.

Güncelleme: @kraftydevil Alt düzen kılavuzu sadece şeritleri görünen ekler, xibs değil. 'Konteyner için Alt Uzay' xibs. kullanın İyi yakaladın!

enter image description here

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CaliforniaMetin

    CaliforniaMe

    3 ŞUBAT 2013
  • David MeShow

    David MeShow

    10 EKİM 2006
  • LardTardProductions's channel

    LardTardProd

    10 NİSAN 2009