我正在修改應用程序以支持iPhone X.我有一個自定義視圖控制器的共享擴展。我需要知道設備的安全區域插頁,但撥打UIApplication.shared.keyWindow
提供的UIWindow
的safeAreaInsets
方法在共享分機上不可用,因爲UIApplication.shared
在此處不可見。 有沒有辦法在我的Share Extension中知道safeAreaInsets
屬性的值?檢測共享擴展上的安全區域插入
6
A
回答
1
safeAreaInsets
是任何UIView上的屬性;你可以在你的共享分機中使用它。您無需爲safeAreaInsets詢問UIApplication.shared.keyWindow
- 事實上,您可能不希望這樣做,因爲如果keyWindow包含UINavigationController
或UITabBarController
,則這些會影響safeAreaInsets。
如果你有深厚的在你的UIView
層次視圖,其safeAreaInsets
通過尋找在層次結構的祖先意見,看是否任何人有safeAreaInsets
與您的看法重疊計算。
您可能會發現然而,該safeAreaInsets
最初UIEdgeInsets.zero
- 你會想要做的就是實現UIView.safeAreaInsetsDidChange()
或UIViewController.viewSafeAreaInsetsDidChange()
,像這樣:
public override func safeAreaInsetsDidChange() {
if #available(iOS 11.0, *) {
super.safeAreaInsetsDidChange()
self.setNeedsUpdateConstraints() // or self.setNeedsLayout, etc.
}
}
相關問題
- 1. PHP共享的擴展安裝問題
- 2. 共享UserDefaults擴展
- 3. 從共享擴展
- 4. Crystal Report:共享區域上的圖像
- 5. 在Visual Studio 2010上共享已安裝的擴展名列表
- 6. 擴展iOS 11安全區域以包含鍵盤
- 7. EMACS:擴展/擴展區域,使其涵蓋全行
- 8. NSURLSession從MacOS共享擴展
- 9. ios共享擴展相機
- 10. iOS共享擴展通知
- 11. excel共享公式擴展
- 12. Firefox擴展:共享狀態
- 13. 在共享主機上安裝PHP擴展
- 14. 的安全區域
- 15. 如何檢測安裝的Chrome擴展
- 16. 檢測Firefox擴展的安裝
- 17. 如何創建可隨時間擴展的共享內存區域?
- 18. 檢測共享IP
- 19. 全屏iOS分享擴展
- 20. 檢測擴展是否安裝Crossrider API
- 21. 檢測是否安裝了Safari擴展
- 22. 共享分享類和數據庫共享擴展
- 23. 擴展TextBox的UseSystemPasswordChar安全
- 24. 擴展內容區域
- 25. Charts.js極地區域擴展
- 26. Firebase安全 - 共享數據
- 27. 安全共享Google日曆
- 28. 共享庫的TX文件擴展名?
- 29. Android中的建築共享擴展
- 30. Spring Security WebSecurityConfig需要安全區域和不安全區域