3 回答

TA貢獻(xiàn)1830條經(jīng)驗 獲得超3個贊
我想提一下safeAreaLayoutGuide
UIView
-viewDidAppear:
表示視圖中不被條形條和其他內(nèi)容遮掩的部分的布局指南。 當(dāng)視圖在屏幕上可見時,本指南反映了導(dǎo)航欄、選項卡條、工具欄和其他祖先視圖未涵蓋的視圖部分。(在tvOS中,安全區(qū)反映沒有覆蓋屏幕邊框的區(qū)域。) 如果視圖當(dāng)前未安裝在視圖層次結(jié)構(gòu)中,或尚未在屏幕上顯示,則布局指南邊緣與視圖邊緣相等。.
(強調(diào)地雷)
-viewDidLoad:
layoutFrame
{{0, 0}, {375, 812}}
{{0, 44}, {375, 734}}

TA貢獻(xiàn)1872條經(jīng)驗 獲得超4個贊
早些時候在IOS 7.0-11.0中< 棄用>
UIKit
使用 那就是 UIView
財產(chǎn) iOS 11+用途 安全AreaLayoutGuide 這也是 UIView
財產(chǎn) 使能 安全區(qū)布局指南來自文件檢查器的復(fù)選框。 安全區(qū)域可以幫助您將視圖放置在整個界面的可見部分中。 在……里面 視頻流安全區(qū)域還包括屏幕的過掃描接口,表示屏幕邊框覆蓋的區(qū)域。 SecurityAreaLayoutGuide反映視圖中未被導(dǎo)航條、選項卡條、工具欄和其他祖先視圖覆蓋的部分。 使用安全區(qū)域作為布局您的內(nèi)容的幫助,如 UIButton
等。 在為iPhoneX設(shè)計時,您必須確保布局填充屏幕,并且不會被設(shè)備的圓角、傳感器外殼或訪問主屏幕的指示器所掩蓋。 確保背景延伸到顯示的邊緣,垂直滾動布局,如表和集合,一直延續(xù)到底部。 iPhoneX上的狀態(tài)欄比其他iPhone高。如果應(yīng)用程序采用固定的狀態(tài)欄高度來定位狀態(tài)欄以下的內(nèi)容,則必須更新應(yīng)用程序,以便根據(jù)用戶的設(shè)備動態(tài)定位內(nèi)容。請注意,當(dāng)語音記錄和位置跟蹤等后臺任務(wù)處于活動狀態(tài)時,iPhoneX上的狀態(tài)欄不會更改高度 print(UIApplication.shared.statusBarFrame.height)//44 for iPhone X, 20 for other iPhones
家用指示器容器高度為34點。 一旦你啟用 安全區(qū)布局指南您可以看到接口生成器中列出的安全區(qū)域約束屬性。
self.view.safeAreaLayoutGuide
objc:
self.demoView.translatesAutoresizingMaskIntoConstraints = NO; UILayoutGuide * guide = self.view.safeAreaLayoutGuide; [self.demoView.leadingAnchor constraintEqualToAnchor:guide.leadingAnchor].active = YES; [self.demoView.trailingAnchor constraintEqualToAnchor:guide.trailingAnchor].active = YES; [self.demoView.topAnchor constraintEqualToAnchor:guide.topAnchor].active = YES; [self.demoView.bottomAnchor constraintEqualToAnchor:guide.bottomAnchor].active = YES;
斯威夫特
demoView.translatesAutoresizingMaskIntoConstraints = false if #available(iOS 11.0, *) { let guide = self.view.safeAreaLayoutGuide demoView.trailingAnchor.constraint(equalTo: guide.trailingAnchor).isActive = true demoView.leadingAnchor.constraint(equalTo: guide.leadingAnchor).isActive = true demoView.bottomAnchor.constraint(equalTo: guide.bottomAnchor).isActive = true demoView.topAnchor.constraint(equalTo: guide.topAnchor).isActive = true } else { NSLayoutConstraint(item: demoView, attribute: .leading, relatedBy: .equal, toItem: view, attribute: .leading, multiplier: 1.0, constant: 0).isActive = true NSLayoutConstraint(item: demoView, attribute: .trailing, relatedBy: .equal, toItem: view, attribute: .trailing, multiplier: 1.0, constant: 0).isActive = true NSLayoutConstraint(item: demoView, attribute: .bottom, relatedBy: .equal, toItem: view, attribute: .bottom, multiplier: 1.0, constant: 0).isActive = true NSLayoutConstraint(item: demoView, attribute: .top, relatedBy: .equal, toItem: view, attribute: .top, multiplier: 1.0, constant: 0).isActive = true }
- 3 回答
- 0 關(guān)注
- 641 瀏覽
添加回答
舉報