這篇文章是 What’s New in Cocoa Touch / UIKit Session 201 的一些整理。【基於OC】
轉自個人 Blog: Danny's Dreamjavascript
須要 Drag 的對象要 add 一個 UIDragInteraction ,用法相似於 UIGestureRecognizer 。
UIDragInteraction 有一個 UIDragInteractionDelegate 的代理,能夠提供數據,浮起的動畫,和自定義的拖動時的動畫。java
接收 Drag 的對象的容器,容器要實現一個 UIDropInteractionDelegate 的代理,能夠來根據拖入的對象調整當前的界面。web
配合剪切板 UIPasteConfiguration 食用會更加。swift
這個功能手機上能夠在 文件 這個系統 app 中體驗,裏面的 tableview 和 collectionview 的 item 都是支持拖拽的。api
多了一個文件管理的 VC,默認裏面會顯示當前 app 權限之內的文件,包括本地的和存在 iCloud 的【若是三方 app 在 info.plist 中聲明瞭 UISupportsDocumentBrowser 或者 UIFileSharingEnabled 和 LSSupportsOpeningDocumentsInPlace 的話,能夠得到第三方 app 的文件】。數組
UIDocumentBrowserViewController* view = [[UIDocumentBrowserViewController alloc]
initForOpeningFilesWithContentTypes:@[@".txt",@".pages",@".pdf"]];複製代碼
值得注意的是官方文檔中提到,在使用該 VC 時。session
增長了大的標題欄【以爲並很差看啊】,新增的 api,控制後面的 vc 層級是否須要繼續展現大的 title,或者所有使用大的 title。能夠在 Mail 的系統 app 中體驗這個特性。app
//聲明大標題
self.navigationController.navigationBar.prefersLargeTitles = YES;
//包含三種模式 aoto / always / never (後續 present 的view 是否須要大標題)
self.navigationController.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeAutomatic;複製代碼
增長了統一的 navigation 搜索欄,不用再加在 tableview 的 header 中了。ide
self.navigationController.navigationItem.searchController複製代碼
如今 navigation bar 是獨立的,和你的 content vie 無關,爲了更好的處理這些系統 view 的佈局的變化,提供了佈局
self.view.safeAreaLayoutGuide // auto layout
self.view.safeAreaInsets // 代碼佈局
- (void)viewSafeAreaInsetsDidChange{
//當佈局變化的時候的回調
}複製代碼
解決了 navigation vc 和 scrollview 的 contentInset 的衝突的問題,如今 navigation vc 不在修改 contentInset 了。
增長了 contentInsetAdjustmentBehavior 這個屬性,默認爲 UIScrollViewContentInsetAdjustmentAutomatic ,能夠用來自定義滑動時候的便宜效果。
經過 adjustedContentInset 能夠獲取當前的偏移量。
滑動操做
Row 增長了 UISwipeActionsConfiguration ,用來處理滑動操做。
UISwipeActionsConfiguration 經過 UIContextualAction 數組來初始化,能夠配置不一樣的動做,左滑右滑等,還能配置 UISwipeActionsConfiguration 的 performsFirstActionWithFullSwipe 【Bool】屬性 來決定第一個事件是否響應完整的滑動。
新的分界線
能夠配置相對值和絕對值的 Inset
self.tableView.separatorInsetReference = UITableViewSeparatorInsetFromAutomaticInsets;複製代碼
這裏是 OC 版的,我就不展開了,KeyPath 的新類型,還增長了 block 的 KVO 【然鵝 OC 並無】。
class UIScrollView { var contentLayoutGuide: UILayoutGuide { get } var frameLayoutGuide: UILayoutGuide { get }}
用於系統級別的調整大小,獲取動態的字體的大小。設計到 Auto Layout 的相關更新。
場景是在 web 上登陸帳戶以後,點擊下線 app ,而後調整 appstore,打開 app ,輸入密碼,這時候能夠自動填寫。【應該須要網頁 / app 端的支持】
這裏沒有具體展開,有個專門介紹這個 session 【Introducing Password AutoFil】
如今顏色也能放在 Asset Catalogs 中了,更方便的使用廣色域的顏色。代碼裏能夠經過下面的方法獲取。【swift 下面能夠直接看到顏色,心酸的 OC 啥都沒】
UIColor *color = [UIColor colorNamed:@"purple"];複製代碼
可縮放大小的圖片
經過 UIScreen 的 maximumFramesPerSecond 能夠獲取當前屏幕的刷新率
獲取屏幕的刷新率,加強滑動和動畫效果。
Metal apps 能夠更好的獲得提高。
針對某些國家從右到左的閱讀習慣的改變,舉得例子是 設置界面的反轉。
That’s all,固然這些是簡單的介紹,具體的還有見各個子 session,詳細的在官方的文檔中均已更新。