Tôi đã thiết lập nhiều bộ ràng buộc trong IB và tôi muốn chuyển đổi theo chương trình giữa chúng tùy thuộc vào một số trạng thái. Có một constraintsA
bộ sưu tập cửa hàng tất cả đều được đánh dấu là đã cài đặt từ IB và một constraintsB
bộ sưu tập cửa hàng tất cả đều được gỡ cài đặt trong IB.
Tôi có thể lập trình chuyển đổi giữa hai tập hợp như vậy:
NSLayoutConstraint.deactivateConstraints(constraintsA)
NSLayoutConstraint.activateConstraints(constraintsB)
Nhưng ... tôi không thể biết khi nào nên làm điều đó. Có vẻ như tôi sẽ có thể làm điều đó ngay lập tức viewDidLoad
, nhưng tôi không thể làm điều đó thành công. Tôi đã thử gọi view.updateConstraints()
và view.layoutSubviews()
sau khi thiết lập các ràng buộc, nhưng vô ích.
Tôi đã nhận thấy rằng nếu tôi đặt các ràng buộc trong viewDidLayoutSubviews
mọi thứ sẽ hoạt động như mong đợi. Tôi đoán tôi muốn biết hai điều ...
- Tại sao tôi nhận được hành vi này?
- Có thể kích hoạt / hủy kích hoạt các ràng buộc từ viewDidLoad không?