簡體   English   中英

如何快速為新 iPhone 設備設置安全區域布局

[英]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 拖尾:4-pts
  • 從頂部到黑暗視圖頂部:4-pts
  • 從底部到根視圖安全區底部:4-pts

和標簽,也是darkView的子視圖,受約束:

  • 尾隨圈尾:8-pts
  • CenterY 到 CenterY 圈

現在...

自動布局將使darkView 的底部保持在屏幕底部,而darkView 的頂部距圓形視圖頂部4 pts。

自動布局將保持圓圖的底部4點從視圖的底部(當沒有軟家按鈕),並從安全區的底部4點(當軟家按鈕) .

這是結果——黃色虛線是安全區邊界。

在 iPhone 8 上:

在此處輸入圖片說明

在 iPhone 11 Pro 上:

在此處輸入圖片說明

以及它在 Storyboard 中的外觀:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM