2016-05-22 22 views
6

Başka View Bottom ile bir View Merkezi'ne hizalayın için nasıl mavi başlık ImageView'ın tutmak uyum alt kafa ImageView merkezini yapmak istiyorum.iOS: AutoLayout

Ben autoLayout kullanarak bunu nasıl? o | |

ekran 4.0inches [screen 4.7inches] ekran 4.7inches screen 4.0inches [screen 4.7inches

cevap

9

Orada bir Bunu yapmanın birçok yolu var. Sadece yollardan birini göstereceğim.

Tamam, adım adım yapalım.

Aşama 1

İlk olarak, dikdörtgen görüntünün alt oval görüntünün merkezine hizalamak amacıyla, biz olarak isim hangi başka bir görünümünde dikdörtgen şeklinde bir görünümünü gömmek için gereken

Kapsayıcı Görünümü.

ff olacak Bu kapsayıcı bakış niteliklerini:

  • şeffaf arka plan rengi
  • genişliği
  • yükseklik dikdörtgen görünümünde (Daha sonra
    iki katı yükseklik olacak ekran genişliğine eşittir nedenini bilecek).
  • Konteyner View kısıtlamaları için

: Öncü

  • süper görünümü önde gelen
  • üst uzay süper görünümüne eşittir süper görünümde yatay Merkezli 0
  • olduğunu. öz ile
  • set boy oranı.

İşiniz bittiğinde, kısıtlamalar buna benzer.

enter image description here

Adım Şimdi 2

dikdörtgen resim görünümü için, kısıtlamalar olacaktır: Öncü

  • konteyner görünümün lider
  • Üst boşluk eşittir konteyner görünümüne göre 0
  • Trailing, kapsayıcı görünümün sonuna eşittir. Oval resim görüntüsü boy oranı ayarlayarak, oval görüntü görünümü

    • ile
    • ayarlayın boy oranı. Bu dikdörtgen görünümün boyutundaki değişiklik, oval görünümün boyut değişikliği ile orantılı olacaktır.

Bu gibi olacaktır:

enter image description here

Aşama 3

Bu kez, oval bakış contraints:

  • sağlayan kendi kendine-boy oranına ayarlanması • kap görünümünde dikey da kendi kendine

    ile

  • grubu boy oranı merkezli

  • kap görünümünde yatay merkezli olduğu dikdörtgen görünüşüdür genişler zaman boyutunda değişiklik Oval görünüm bozulmaya neden olmaz. 4

    çok önemli bir görünümü vardır eklemek için

    enter image description here

    Adım:

Bu

sonuç olacaktır. Bu görüş, dikdörtgen görünüşün her zaman konteyner görünümünün yarısı kadar olmasını sağlayacaktır, böylece oval görünümün merkezi her zaman dikdörtgen görünüşün tabanı ile hizalanacaktır. Yani, bu görüşe kukla görünüm olarak ekleyeceğiz diyoruz.

ff olacak kukla görünüm niteliklerini:

  • :

    • şeffaf arka plan rengi
    • genişlik ve yükseklik değeri yalnızca 1

    kukla görünümün contraints olmalıdır konteyner görünümünde dikey olarak ortalanmış

  • konteyner görünümünde yatay olarak merkezlenmiş
  • genişlik ve yükseklik sabitlenmiştir. Dikdörtgen görüntüsü
  • atama dikey boşluk

Bu nasıl yapılması gerektiğini geçerli:

enter image description here

Pekala, etkiyi elde edecek Yukarıdaki adımları yaptıysam.

enter image description here

umarım bu yardımcı olur:

Bu

kısıtların bakış olacaktır. :)

Bunun işe yaradığını kanıtlayın!

simülatörde koştum ...: D

iPhone 4:

enter image description here

iPhone 5:

enter image description here

iPhone 6:

enter image description here

iPhone 6 Plus:

enter image description here

+0

Çok teşekkürler. – ACMango

+0

rica ederim. :) –

0

Önce elle arka plan resmi ve birinci İKEN HODLING SHIFT yerleştirmek doğru ölçüler SONRA dokunun kadar sürüklemek olur ekranın sağ alt köşesinde simge görünüyor kenar boşlukları seçeneğinin işaretini kaldıracağım ve 0, top 0, sağ 0 ve altta daha büyük bir sayı olmalıdır (sizin için otomatik olarak oluşturulmalıdır)

şimdi 2. UIImage'ı yerleştirin. ..Bunu ve istediğiniz gibi boyutlandırın ... şimdi aynı simge üzerinde | o | Buna dokunun ve bir yükseklik ve genişlik verin ... kısıtlamalar ekleyin ... şimdi sola devam etmek için 2'ye gidin (onun gibi iki yığılmış dikdörtgenler) .. buna dokunun ve "yatay olarak kapsayıcıya dokunun ... ŞİMDİ dokunun daha küçük resim ve ... dikey boşluklar dokunun ... büyütmek için kontrol ve sürükle tutun ve bırakın

son olarak .... bir benziyor aşırı sağ simgesi | o | ama bir üçgen vardır ... resimlerden biri seçili iken ... Eğer görünümü ile değil görüntüye göre autolayout Kısıtlamaları uygulamak zorunda alt "updtate çerçeveleri"

+0

Yanıtınız için teşekkürler. Arka plan resminin yüksekliği sabit olmadığından, sabit dikey bir yükseklik ayarlayamıyorum (headImageView.frame.origin.y), ancak kafa görüntü merkezinin arka planla hizalanmasını istiyorum Görüntü alçaltıldı ow – ACMango

+0

'u uygulamak için senaryoyu kendi komutlarımı kullanarak yaklaşık 2 dakika içinde yeniden oluşturdum ... ve sonuç nasıl istersen ... yanlış anlaşılmadıkça ... neden bir sabit kuramıyorsun? başın dikey yüksekliği? – RubberDucky4444

+0

Farklı ekran boyutlarına sığdırmak istiyorum.if boyutu değişti (örneğin 4.7 veya 5.5), baş imageView'ın konumu yanlış. – ACMango

7

Bu size yardımcı olabilir. Tamamen Otomatik Ödeme özelliğine göre, fazladan görünüm gerekmez.

  • İlk önce, Kapak görüntüsünün yüksekliği ve genişliği ve konumu üzerinde bazı kısıtlamalar ayarlayın. (mavi renk)

Toplam genişlik 0,4, genişliğin eşit genişliği, sınırlarını görebilirsiniz.

  • step1

    Sonra Avatar (yeşil) resmin yüksekliğini ve genişliğini sabitlemek genişliğinde yatay olarak merkezi haline getirmektedir.

Ardından hem kapak görüntüsünü hem de avatar görüntüsünü seçin, bunları alt kenarı hizalayın.

step3

Şimdi bu döner.

step4

  • Son adım

    , 'Resmi Kapak Align Bottom' seçin ve Avatar resmin yüksekliğinin yarısı kadar sürekli olun. Bitti!

step5

Şu ana bulduk basit yoldur.

9

Adım 1: Görünümlerinizi aşağıda gösterildiği gibi oluşturun.

enter image description here

Adım 2: üç kenarlarına Arka plan görünüşüdür kısıtlamaları.

enter image description here

Adım 3: Kendi oranını ayarlayın. Bildiğiniz gibi, yüksekliğinizin olmadığını söylemiştiniz.

enter image description here

Adım 4: merkez görünümü seçin ve istediğiniz kadar genişlik & yükseklik kısıtlamaları ekleyin. Şimdi, her iki arka plan görünüşüdür & merkezi görünümü seçin:

enter image description here

Adım 5:

enter image description here

Aşama 6, aşağıda gösterildiği gibi Superview yatay merkez olarak merkezi görünümü ayarlayın. Hizalama kısıtlamasını "Dikey merkezler" olarak ayarlayın.

enter image description here

Adım 7: Şimdi, aşağıda gibi yanlış sabiteyle uyarı ile bir sınırlamayı görebilirsiniz. Bağlantılar denetçisinde "ikinci öğe" seçin ve için "alt"

enter image description here

Adım 9 değiştirin:: Bu sınırlamayı

enter image description here

Adım 8 Seç İşte bu kadar. Bir uyarı varsa, kısıtlamalarınızı güncelleyin. Herhangi bir ekran boyutunda farklı simülatör kontrol edebilirsiniz.

enter image description here

Bunu gerçekleştirmek için herhangi bir süper görünümleri veya yeni kardeş gerekmez. Herhangi bir görünümü merkez haline getirmenin ve başka bir görünümün alt/üst kısmı olarak tutmanın kolay yolu.

+1

Harika çözüm! –

+1

Bu kabul edilen cevap olmalı. – Rmyers