Saya telah menyiapkan beberapa rangkaian batasan di IB, dan saya ingin beralih di antara keduanya secara terprogram tergantung pada beberapa status. Ada constraintsAkoleksi outlet yang semuanya ditandai terinstal dari IB, dan constraintsBkoleksi 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 viewDidLayoutSubviewssegala 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?