Tôi đã đặt các ràng buộc hàng đầu, theo dõi một cách bình thường. Tôi đã đặt chiều cao của nó thành tĩnh 325. Và đối với ràng buộc dưới cùng, tôi đã đặt 2 ràng buộc 1. với ràng buộc dưới của khung nhìn chính để xem ràng buộc dưới của khung nhìn. 2. với ràng buộc dưới cùng của khung nhìn chính để ràng buộc trên cùng của khung nhìn. Bây giờ trên hành động của người dùng, tôi chỉ hiển thị ẩn xem với hình ảnh động. Vì vậy, khi chế độ xem được hiển thị trên màn hình và ứng dụng ở chế độ nền thì ràng buộc của chế độ xem sẽ tự động bị thay đổi và chế độ xem bị ẩn. Vấn đề này chỉ xảy ra trong các thiết bị iOS 13.
Tôi đã cố cập nhật các ràng buộc của nó trên viewWillAppear () nhưng trong iOS 13, viewWillAppear của ViewControllers cũng không được gọi khi ứng dụng được kích hoạt từ nền. Ngoài ra tôi không nghĩ rằng đây là một ý tưởng tốt để cập nhật các ràng buộc.
class ViewController: UIViewController {
@IBOutlet weak var topConstraint: NSLayoutConstraint!
@IBOutlet weak var bottomConstraint: NSLayoutConstraint!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 3) {
self.topConstraint.isActive = false
self.bottomConstraint.isActive = true
UIView.animate(withDuration: 0.3) {
self.view.layoutIfNeeded()
}
}
}
}
Tôi không muốn các ràng buộc của mình bị thay đổi hoặc cập nhật khi trạng thái ứng dụng thay đổi từ nền trước sang nền và ngược lại.
Xin hãy giúp tôi với cùng.
TIA
.frame = ...
tuyên bố rõ ràng ), thì mã của bạn sẽ hoạt động tốt. khôngViewDidLoad()
nên được gọi khi ứng dụng chuyển từ nền sang tiền cảnh, trừ khi bạn có một số mã khác đang chạy trên sự kiện đó.
contentView
bên dưới phía dưới (vì vậy đó là "ngoài màn hình"), sau đó bạn muốn tạo hiệu ứng di chuyển lên để xem ... Sau đó, ứng dụng chuyển sang nền và bạn có muốn chế độ xem vẫn hiển thị khi ứng dụng quay lại nền trước không? Không có hoạt hình mới?