iOS 11 SDK 介紹

navigation bar large title,放大的 navigation bar

範例: Setting App

controller 個別控制 navigation bar 是否放大

iOS 11 SDK 介紹_第1张图片
iOS 11 SDK 介紹_第2张图片

讓 navigation bar 放大。

將 navigation bar 的 prefersLargeTitles 設成 true。

open var prefersLargeTitles: Bool


iOS 11 SDK 介紹_第3张图片

每個頁面的 navigation item 可控制 navigation bar 是否放大,透過 largeTitleDisplayMode。

open var largeTitleDisplayMode: UINavigationItem.LargeTitleDisplayMod

automatic : 以前一頁 navigation item 的 largeTitleDisplayMode 為準。

always: 放大。

never: 不放大。

public enum LargeTitleDisplayMode : Int {

case automatic

case always

case never

}


iOS 11 SDK 介紹_第4张图片

捲動後 navigation bar 縮小

當畫面上的 Scroll View, Table View, Collection View, Text View 捲動時,都可以讓 navigation bar 縮小。

捲動後在 navigation bar 裡顯示 search bar

透過 navigation item 的 2 個屬性。

open var searchController: UISearchController?

open var hidesSearchBarWhenScrolling: Bool


iOS 11 SDK 介紹_第5张图片

Safe Area

View 的 safe area 控制內容呈現的範圍。

class UIView {

var safeAreaLayoutGuide: UILayoutGuide { get }

var safeAreaInsets: UIEdgeInsets { get }

func safeAreaInsetsDidChange()

}


iOS 11 SDK 介紹_第6张图片

勾選 Use Safe Area Layout Guides 後,Top Layout Guide 和 Bottom Layout Guide 被拿掉,變成使用 Safe Area。


iOS 11 SDK 介紹_第7张图片

範例 1:

圖片的上下左右間距,分別對應到 Safe Area 的 trailing,leading,bottom 和 top。


iOS 11 SDK 介紹_第8张图片

範例 2:


iOS 11 SDK 介紹_第9张图片

override func viewDidAppear(_ animated: Bool) {

super.viewDidAppear(animated)

print(view.safeAreaInsets)

print(view.safeAreaLayoutGuide)

}

標準大小的 navigaiton bar 時,safe area 的 top inset 是 64

UIEdgeInsets(top: 64.0, left: 0.0, bottom: 0.0, right: 0.0)


iOS 11 SDK 介紹_第10张图片

放大版的 navigaiton bar 時,safe area 的 top inset 是 116。

UIEdgeInsets(top: 116.0, left: 0.0, bottom: 0.0, right: 0.0)

你可能感兴趣的:(iOS 11 SDK 介紹)