你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發基礎 >> iOS 9 學習系列:Split Screen Multitasking

iOS 9 學習系列:Split Screen Multitasking

編輯:IOS開發基礎

iOS 9 的一個重大變化就是增加了多任務,這個多任務允許用戶在屏幕上同時運行多個 app。有兩種形態,Slide Over(滑動覆蓋視圖) 和 Splite View(分割視圖)。

Slide Over View

1.jpg

這種形式下,用戶可以從右側劃出一個窄的區域,在這個區域裡展示了應用的列表,然後你可以選擇打開一個,在這個區域裡展示。它出現在你前面運行的程序之上,並且兩個應用之間不會有任何相互操作和影響。

Split View

blob.png

為了打開 splite view,用戶要把(兩個應用之間的)分割線拖到左邊。用戶自己來控制被垂直分隔開的2個應用的窗口大小。當 splite view 為當前狀態時,沒有前後台的概念,兩個應用都是在前台的。

目前,splite view 僅適用於 iPad Air 2。

Enabling Multitasking in Your App

當你創建新項目時,多任務設置是默認開啟的。如果要為一個老項目開啟這個功能,則需要手動設置一下。下面是你在使用 iOS 9 SDK 的情況下,需要做的:

1. 允許全部的方向(Portrait, Upside Down, Landscape Left, Landscape Right)

2. 使用 Storyboards

設置(Opting Out)

當你具備了上面兩個條件後,多任務才能在你使用iOS 9 SDK 編譯時,被允許使用。如果想要編輯這個屬性,在 info.plist 中指明 UIRequiredFullscreen這個 key 的值。

Auto Layout 的重要性

Auto Layout 在 iOS 6中首次被引入,它允許你通過設置約束而不是位置信息來控制UI的布局。 Adaptive Layout 是在 iOS 8中被引入,它把 Auto Layout 的能力提升了一個級別,允許你為不同尺寸的設備設置不同的約束。Size classes 可以根據 app 窗口的大小,確定一個相對的位置。

由於要多任務,你仍然可能有很多問題,需要在 iOS 9 上進行調解。

不要再使用 UIInterfaceOrientation 了

理論上,UIInterfaceOrientation 在多任務的情況下不在起作用。如果你想為一個在多任務中的app 確定他的 UIInterfaceOrientation, 你無法確認是否是在全屏狀態下。比如說,你的應用在前台並且是橫向的,盡管比縱向的會寬,但是(代碼)仍然會給你返回為 UIInterfaceOrientationPortrait。

但有時候我們仍然需要根據方向來調整一下用戶界面,怎麼辦呢?答案是,使用traitCollection.horizontalSizeClass。 他會給你 Size Class 的信息,你可以根據方向來調整應用中view 的布局。

尺寸變化事件

以前當旋轉事件發生時,我們推薦使用 willRotateToInterfaceOrientation 和 didRotateToInterfaceOrientation方法,來響應。 在 iOS 8 裡蘋果介紹了 willTransitionToTraitCollection 和 viewWillTransitionToSize 兩個方法。這些方法在 iOS 9裡,對於多任務仍然有效,並且更重要了。你可以根據需求,來檢測方向和手動比較寬高等。

鍵盤響應事件

以前,只有當你打開應用時,鍵盤事件才有效。現在,有可能僅僅是最上層的應用需要鍵盤,他就出現了。

blob.png

某些情況下,出現鍵盤可能對你的應用並無影響。但有時,可能鍵盤會擋住你的應用的一塊兒重要位置,這時 UIKeyboard 的通知就很重要了。  WillShow, DidShow, WillHide, DidHide, WillChangeFrame 和 DidChangeFrame 這些通知讓你有能力處理此類問題。這些通知事件,在屏幕上出現的兩個應用中都能接受到。

其他考慮因素

(多任務帶來的)這些變化,讓你必須要考慮的,並非僅僅是視覺改變。以前只有一個應用運行在前台,你可以使用大量的 CPU,GPU 和內存資源。但現在不同了,假如一個用戶選擇了 split view 或者 slide over view ,於此同時,他還利用 iOS9 的畫中畫的特性,觀看一個視頻,就是三個應用來分享這些資源了

為了更好的用戶體驗,系統會管理資源的占用,並且會終止掉占用資源過多的 app。--- 來自蘋果 iOS9 多任務開發文檔。

你需要對你的應用在不同情況下,進行更多測試來卻確保有信心達到預期的效果,並確保沒有占用多余的資源。

延伸閱讀

想要了解更多關於 iOS9 多任務的內容,請閱讀開發者中心的文檔 Adopting Multitasking On iPad。我同樣推薦,觀看WWDC 2015 的session 410 Continuous Integration and Code Coverage in Xcode。


  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved