LIHAT, TANPA SPACER!
Berdasarkan saran di bagian komentar pada jawaban asli saya, terutama saran bermanfaat @ Rivera, saya telah menyederhanakan jawaban asli saya.
Saya menggunakan gif untuk menggambarkan betapa sederhananya ini. Saya harap Anda menemukan gif bermanfaat. Kalau-kalau Anda memiliki masalah dengan gif, saya sudah menyertakan jawaban lama di bawah ini dengan tangkapan layar biasa.
Instruksi:
1) Tambahkan tombol atau label Anda. Saya menggunakan 3 tombol.
2) Tambahkan batasan x pusat dari setiap tombol ke superview:
3) Tambahkan batasan dari setiap tombol ke batasan tata letak bawah:
4) Sesuaikan kendala yang ditambahkan pada # 3 di atas sebagai berikut:
a) pilih batasannya,
b) hapus konstanta (atur ke 0),
c) ubah pengali sebagai berikut: ambil jumlah tombol + 1, dan mulai dari atas, atur pengali sebagai tombolCountPlus1: 1 , lalu tombolCountPlus1 : 2 , dan akhirnya buttonCountPlus1: 3 . (Saya jelaskan dari mana saya mendapat formula ini dari jawaban lama di bawah, jika Anda tertarik).
5) Ini demo berjalan!
Catatan: Jika tombol Anda memiliki ketinggian yang lebih besar maka Anda perlu mengkompensasi hal ini dalam nilai konstan karena batasannya adalah dari bagian bawah tombol.
Jawaban Lama
Terlepas dari apa yang dikatakan oleh dokumen Apple dan buku hebat Erica Sadun ( Auto Layout Demystified ), adalah mungkin untuk menyamakan tampilan ruang tanpa spacer. Ini sangat mudah dilakukan di IB dan dalam kode untuk sejumlah elemen yang ingin Anda tempatkan secara merata. Yang Anda butuhkan hanyalah rumus matematika yang disebut "rumus bagian". Lebih mudah dilakukan daripada menjelaskan. Saya akan melakukan yang terbaik dengan mendemonstrasikannya dalam IB, tetapi itu mudah dilakukan dalam kode.
Dalam contoh yang dimaksud, Anda akan melakukannya
1) mulai dengan mengatur setiap label untuk memiliki batasan tengah. Ini sangat mudah dilakukan. Cukup kendalikan drag dari setiap label ke bawah.
2) Tahan shift, karena Anda mungkin juga menambahkan kendala lain yang akan kita gunakan, yaitu, "ruang bawah ke panduan tata letak bawah".
3) Pilih "panduan tata ruang bawah ke bawah", dan "tengah secara horizontal dalam wadah". Lakukan ini untuk ketiga label.
Pada dasarnya, jika kita mengambil label yang koordinatnya ingin kita tentukan dan membaginya dengan jumlah total label ditambah 1, maka kita memiliki nomor yang dapat kita tambahkan ke IB untuk mendapatkan lokasi yang dinamis. Saya menyederhanakan formula, tetapi Anda bisa menggunakannya untuk mengatur jarak horizontal atau vertikal dan horizontal secara bersamaan. Ini sangat kuat!
Inilah pengganda kami.
Label1 = 1/4 = .25,
Label2 = 2/4 = .5,
Label3 = 3/4 = .75
(Sunting: @Rivera berkomentar bahwa Anda dapat menggunakan rasio langsung di bidang pengali, dan xCode dengan melakukan matematika!)
4) Jadi, mari kita pilih Label1 dan pilih batasan bawah. Seperti ini:
5) Pilih "Item Kedua" di Inspektur Atribut.
6) Dari drop down pilih "Reverse item pertama dan kedua".
7) Nol keluar dari nilai konstanta dan wC hAny. (Anda dapat menambahkan offset di sini jika Anda membutuhkannya).
8) Ini adalah bagian penting: Di bidang pengali tambahkan pengali pertama kami 0,25.
9) Ketika Anda mengaturnya, atur "Item pertama" ke "Tengah" karena kami ingin menempatkannya di tengah label y. Begini caranya semua itu harus terlihat.
10) Ulangi proses ini untuk setiap label dan pasang pengganda yang relevan: 0,5 untuk Label2, dan 0,75 untuk Label3. Inilah produk akhir dalam semua orientasi dengan semua perangkat ringkas! Sangat sederhana. Saya telah melihat banyak solusi yang melibatkan rim kode, dan spacer. Ini adalah solusi terbaik yang pernah saya lihat dalam masalah ini.
Pembaruan: @kraftydevil menambahkan bahwa panduan tata letak bawah hanya muncul di storyboard, bukan di xibs. Gunakan 'Bottom Space to Container' di xibs. Tangkapan yang bagus!