iOS 9 分屏多任務:Slide Over & Split View快速入門(中文版)

jopen 9年前發布 | 34K 次閱讀 IOS iOS開發 移動開發
 

iOS 9 分屏多任務:Slide Over & Split View快速入門(中文版)

本文由鋼鐵俠般的卿哥( 微博 )翻譯自蘋果官方文檔: Adopting Multitasking Enhancements on iPad ,主要講述iOS 9中iPad的多任務處理功能,歡迎指正。

該文檔包含:

第一部分: iOS 9 分屏多任務--入門

第二部分: iOS 9 分屏多任務--Slide Over & Split View快速入門

第三部分: iOS 9 分屏多任務--畫中畫(PiP)快速入門

按照本章中的指導,在支持的iPad設備上讓你的App運行iOS 9多任務。

當你新建一個Xcode 7模板工程時,是默認支持Slide Over和Split View。如果你從老的工程升級到iOS 9,通過以下的步驟設置你的Xcode工程配置,從而讓App支持Slide Over和Split View:

iOS 9 分屏多任務:Slide Over & Split View快速入門(中文版)

注意: 如果你一定不支持Slide Over和Split View,在你的Xcode 項目的Info.plist文件中顯式地加入UIRequiresFullScreen關鍵字并為其Boolean值賦上YES。你可以在屬性列表編輯 器,或在目標編輯器的General>Deployment Info區域設置。

提示: 通過設置Settings > General > Multitasking,用戶可禁用Slide Over和Split View 。如果你已經把一切都設置正確后,但仍無法使用這些特性,你可以檢查這項設置。

對于如何使用Slide Over和Split View,可以下載Lister ( for watchOS, iOS, and OS X )示例代碼工程。

在 Slide Over and Split View中,主要和次要App都同時運行在前臺,大多數情況下它們都是平等的。但只有主要App可以:

  • 擁有自己的狀態欄;

  • 有資格使用第二物理屏幕工作;

  • 可使用畫中畫自動調用;

  • 可以占用橫屏下的2/3屏幕面積,并且在分屏視圖中,水平方向上是regular Size Class(橫屏Split View中,次要應用最多占用二分之一的屏幕,并且在水平方向上是compact Size Class)。

在Split View中,用戶控制你的應用程序窗口的大小。用戶通過旋轉設備(如在iOS的早期版本),或者水平滑動分割主要應用和次級應用程序的垂直分隔線來此操 作。當兩種類型的變化發生時,系統以同樣的方式通知你的應用程序:窗口范圍界限的改變會伴隨改變根視圖控制器的Size Classes。(用戶移動分屏控件也會顯示App狀態過渡,在本節后面介紹。)

此前,iPad的水平和垂直Size Classes總是“regular”。隨著Slide Over 和 Split View出現,這些都已經有很大的改變。下圖顯示了你的App會遇到用戶操作iPad屏幕后不同的Size Classes。

iOS 9 分屏多任務:Slide Over & Split View快速入門(中文版)

為了App的內容正確顯示,你的App必須是自適應的。你的App設置應當:

這要求App中的LaunchScreen.storyboard文件必須支持Auto Layout。使用Xcode 7中的App模板創建的新工程會自動生成LaunchScreen.storyboard文件。學習如何添加這個文件到你的工程中,請參閱 App Distribution Guide 中的 Creating a Launch Screen File 內容。

正確地處理你的App的狀態轉換在iOS9中尤為重要。在Split View上下文中,每當用戶移動Split View分割器時,屏幕上的兩個應用程序都將移動到屏幕之外。甚至是當用戶改變主意并將分割器返回起點時,這種情況也會發生。

當用戶移動分割控件時,系統會使用 ApplicationWillResignActive: 協議方法調用App委托對象。

系統會重新調整你的App(屏幕外)以捕捉到一個或多個快照,確保當用戶最終釋放分隔控件時能提供流暢的用戶體驗。這是因為在用戶最終釋放分隔控件時無法預測應用的窗口最終邊界。更復雜的場景是設備的旋轉和移動分隔器同時進行。

保證你的App在大小改變、快照獲取處理中不丟失數據狀態或導航狀態。這就是當一個用戶改變App大小--移動分隔器并將其移動到初始位置最后釋放這個分 隔器,這一系列的情況下,用戶期望App的狀態,導航位置(包括視圖、選擇、滾動位置以及其他等)能與用戶最初觸摸分隔器時一樣。充分使用 ApplicationWillResignActive: 調用保存用戶的狀態。詳情請閱讀 App Programming Guide for iOSWhat to Do When Your App Is Interrupted Temporarily 一節。

如果用戶移動分隔控件直到屏幕邊界讓你的App消失,那系統會調用 ApplicationDidEnterBackground: 協議方法。

有關優雅其處理App狀態過渡的引導,請閱讀 App Programming Guide for iOSStrategies for Handling App State Transitions 一節。

關于快照的處理信息,請閱讀 Prepare for the App Snapshot ,并參考 UIView Class Reference 中的 Capturing a View Snapshot 相關內容。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!