[英]How to set Safe Area Layout for new IPhone Devices in swift
我創建了一個簡單的 view.Xib 文件,如果 Internet 連接因任何原因中斷或斷開連接,我的視圖將顯示在底部。
為此,我以編程NSLayoutConstraint
設置了NSLayoutConstraint
。
SafeAreaLayout
它會在每個新 iPhone 設備(如 iPhone XR、11、Pro 或 Pro max)的底部SafeAreaLayout
出空間。SafeAreaLayout
則底部的視圖未正確顯示。 在具有SafeAreaLayout
所有其他設備(iPhone 7、8 或 plus)中,它可以正常工作。
如何在沒有空間的底部正確設置視圖?
我的代碼:
let viewW = offlineView.fromNib()
view.addSubview(viewW)
viewW.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
viewW.leadingAnchor.constraint(equalTo: self.view.leadingAnchor),
viewW.trailingAnchor.constraint(equalTo: self.view.trailingAnchor),
viewW.topAnchor.constraint(equalTo: self.view.bottomAnchor,constant: -25),
viewW.bottomAnchor.constraint(equalTo: self.view.bottomAnchor),
])
let viewW = offlineView.fromNib()
view.addSubview(viewW)
viewW.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
viewW.leadingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.leadingAnchor),
viewW.trailingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.trailingAnchor),
viewW.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.bottomAnchor,constant: -25),
viewW.bottomAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.bottomAnchor),
])
附上截圖:
安全區:
沒有安全區:
您可能想嘗試這種方法...
約束“暗”視圖:
然后,將您的“圓圈”視圖添加為 darkView 的子視圖,並約束:
和標簽,也是darkView的子視圖,受約束:
現在...
自動布局將使darkView 的底部保持在屏幕底部,而darkView 的頂部距圓形視圖頂部4 pts。
自動布局將保持圓圖的底部4點從視圖的底部(當沒有軟家按鈕),並從安全區的底部4點(當有軟家按鈕) .
這是結果——黃色虛線是安全區邊界。
在 iPhone 8 上:
在 iPhone 11 Pro 上:
以及它在 Storyboard 中的外觀:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.