Ubah ukuran tampilan dalam UIStackView untuk mengisi ukuran layar yang tersisa saat runtime

Saya memiliki pengaturan berikut di storyboard saya:

UIScrollView
|- UIStackView
    |- View1
    |- View2
    |- View3
    |- View4

Beberapa konten di dalam View1-4 bersifat dinamis, dan View2 memiliki tombol. Jika tombol ini diklik, ScrollView akan bergulir ke offset sehingga View2 berada di bagian atas layar yang terlihat. View2 memiliki ketinggian tetap dan diketahui sebesar 100. Bagaimana saya sekarang dapat mengubah ukuran View3 setelah tombol diklik dan pengguliran selesai, sehingga memenuhi bagian layar yang tersisa, berfungsi di semua perangkat? Apakah saya perlu menghitung tinggi layar dan mengurangi tinggi View2? Atau apakah ada cara yang ramping dengan tata letak otomatis?


person Pauli    schedule 07.01.2019    source sumber


Jawaban (1)


Anda dapat membuat batasan untuk ketinggian View3 yang sama dengan tinggi tampilan root, dengan konstanta -100. Kemudian Anda cukup mengaktifkan isActive pada batasan ini, dan View3 akan secara otomatis mengubah ukurannya sesuai keinginan Anda.

person Rengers    schedule 07.01.2019
comment
Bisakah saya menetapkan nilai batasan ini di IB? Kemungkinan besar bukan karena tinggi layarnya kan? Apakah saya perlu membuat jalan keluar untuk batasan dan menetapkan nilai di viewDidLoad? - person Pauli; 07.01.2019
comment
Anda dapat mengaturnya di IB jika UIViewController menutupi seluruh layar, dengan membuatnya sama dengan tampilan UIViewController. Anda juga dapat membuatnya sama dengan tinggi UIScrollView, jika itu lebih sesuai. Itu tergantung pada hierarki tampilan Anda. Dan Anda memerlukan IBOutlet atau properti normal untuk beralih isActive. - person Rengers; 07.01.2019