iPhone X'i desteklemek için bir uygulamayı uyarlıyorum. Özel bir görünüm denetleyicisi olan bir paylaşım uzantım var. Cihazımın güvenli alan bilgisini bilmem gerekiyor, ancak UIApplication.shared.keyWindow
numaralı telefonu arayarak UIWindow
numaralı telefondan verilen safeAreaInsets
yönteminin UIApplication.shared
orada görünmediğinden Paylaşım Uzantısında bulunmuyor. Paylaşım Uzantımdaki safeAreaInsets
özelliğinden değerleri bilmek için bir yol var mı?Güvenli alan girişlerini saptama Paylaş Paylaş Paylaş
6
A
cevap
1
safeAreaInsets
herhangi bir UIView üzerinde bir özelliktir; Bunu, Paylaşım Uzantınız'da kullanabilirsiniz. SafeAreaInsets için UIApplication.shared.keyWindow
'a sormanız gerekmez; aslında, muhtemelen bunu yapmak istemezsiniz çünkü keyWindow bir UINavigationController
veya UITabBarController
içeriyorsa, bunlar safeAreaInsets'i etkiler. Eğer UIView
hiyerarşisindeki derin bir görünümü varsa
, onun safeAreaInsets
hiyerarşisinde atası görünümlerini incelemek ve bunlardan herhangi sizin görünümü ile örtüşen safeAreaInsets
varsa görerek hesaplanır.
public override func safeAreaInsetsDidChange() {
if #available(iOS 11.0, *) {
super.safeAreaInsetsDidChange()
self.setNeedsUpdateConstraints() // or self.setNeedsLayout, etc.
}
}
: -
Sen
safeAreaInsets
olduklarını, ancak, bulabilirsiniz
başlangıçta UIEdgeInsets.zero
ne yapmak isteyeceksiniz gibi pek, UIView.safeAreaInsetsDidChange()
veya UIViewController.viewSafeAreaInsetsDidChange()
uygulamak olduğunu