UIScrollView dan Autolayout mencegah kompresi tampilan konten

Di IB saya memiliki pengontrol tampilan yang berisi tampilan gulir.

Tampilan merah ada di dalam scrollview

Ketinggian minimum tampilan merah adalah 504 piksel, jadi di iPhone 4 harus digulir dan di iPhone >=5 harus diperluas dan tata letak tombol untuk mengisi bagian yang kosong.

Saya mengatur batasan tampilan merah ke 0 dari atas, depan, belakang, dan bawah tampilan gulir dan juga terpusat secara horizontal dan vertikal. Redview saya memiliki tinggi minimum 504

Pemandangan biru dan hijau memiliki ketinggian yang sama

Semuanya baik-baik saja untuk iphone >=5 tetapi untuk iphone 4 tampilan merah dikompresi menjadi ukuran tampilan gulir dan tombol-tombolnya saling bersentuhan.

Setelah beberapa penyesuaian kendala, saya bertanya-tanya apakah mungkin melakukan apa yang saya inginkan 100% di IB dengan autolayout

masukkan deskripsi gambar di sini

iphone 4!OK

iphone 6 Oke


person Mathieu    schedule 11.02.2015    source sumber


Jawaban (1)


Anda berkata (tekankan pada saya :)

"Saya menetapkan batasan tampilan merah ke 0 dari atas, depan, belakang, dan bawah tampilan gulir dan juga dipusatkan secara horizontal dan vertikal. Tampilan merah saya memiliki ketinggian minimum 504"

Pertama, saya dapat melihat beberapa redundansi (bagian yang tebal). RedView Anda tidak memerlukan batasan vertikal karena Anda telah menyematkannya di tepi tampilan gulir dan memiliki tinggi minimum yang ditentukan.

Tapi ini bisa jadi atau tidak menjadi penyebab tombol-tombolnya saling berdekatan, tergantung pada kendala lainnya.

Sudahkah Anda menetapkan batasan ruang vertikal untuk tombol?

person joakim    schedule 11.02.2015
comment
Saya telah menetapkan batasan ruang vertikal untuk tampilan biru (tinggi minimum 12px) Dan tombol memiliki batasan tinggi 60px dan 0px atas dan bawah dari tampilan biru - person Mathieu; 11.02.2015
comment
menghapus pemusatan vertikal tampilan merah dan tampilan gulir memberi saya hasil yang saya inginkan di iphone 4 tetapi di iphone › 5 tampilan merah tidak meluas ke bagian bawah tampilan gulir - person Mathieu; 11.02.2015
comment
Dalam situasi serupa baru-baru ini, saya memilih untuk membuat redView menjadi tampilan latar belakang. Sudahkah Anda mempertimbangkan pilihan itu? Yang saya maksud dengan ini adalah Anda dapat mencoba meletakkan redView di luar dan di belakang tampilan gulir (di atas scrollView dalam tampilan hierarki IB). Segala sesuatunya akan lebih mudah untuk dikendalikan/diikuti dengan cara ini. - person joakim; 11.02.2015
comment
Atau Anda dapat menerapkan prioritas berbeda untuk kendala Anda, bergantung pada prioritas mana yang ingin Anda atasi dalam skenario yang mencakup penyelesaian konflik. - person joakim; 11.02.2015