Saya telah menyiapkan beberapa rangkaian batasan di IB, dan saya ingin beralih di antara keduanya secara terprogram tergantung pada beberapa status. Ada constraintsA
koleksi outlet yang semuanya ditandai terinstal dari IB, dan constraintsB
koleksi outlet yang semuanya dihapus di IB.
Saya secara terprogram dapat beralih di antara dua set seperti ini:
NSLayoutConstraint.deactivateConstraints(constraintsA)
NSLayoutConstraint.activateConstraints(constraintsB)
Tapi ... Saya tidak tahu kapan harus melakukan itu. Sepertinya saya harus bisa melakukannya sekali viewDidLoad
, tapi saya tidak bisa membuatnya bekerja. Saya sudah mencoba menelepon view.updateConstraints()
dan view.layoutSubviews()
setelah mengatur batasan, tetapi tidak berhasil.
Saya menemukan bahwa jika saya menetapkan batasan dalam viewDidLayoutSubviews
segala hal bekerja seperti yang diharapkan. Saya rasa saya ingin mengetahui dua hal ...
- Mengapa saya mendapatkan perilaku ini?
- Apakah mungkin untuk mengaktifkan / menonaktifkan batasan dari viewDidLoad?