模態檢視控制器:GCTUIModalPresentationViewController

weixin_34116110發表於2018-05-16

GCTUIModalPresentationViewController

312211-31607a32e3bcf415.gif
IMG_0399.TRIM 3.gif

基於 UIViewControllerTransitioningDelegate 實現的快速配置模態控制器的動畫實現方案。

Github

功能

  • 支援 13 種 presentAnimation 動畫配置。
  • 支援 13 種 dismissAnimation 動畫配置。
  • 支援 5 種背景樣式設定。
  • 支援背景點選後檢視是否 dismiss 的配置。
  • 支援 UITextFieldUITextView 鍵盤同步模態顯示。

安裝

支援手動匯入。

直接匯入工程中 GCTUIModalPresentationViewController 檔案,繼承即可使用。

支援 Cocoapods 匯入

pod 'GCTUIModalPresentationViewController'

使用

1、建立 ViewControlle 繼承自 GCTUIModalPresentationViewController
2、在自定義的 ViewController 中建立自定義檢視(繪製UI:可使用 XIBFrame ),保證自定義檢視為最終正常顯示的位置。
3、在檢視顯示之前,設定控制器的observerView、背景樣式、顯示、消失的動畫。
4、顯示控制器時,正常顯示呼叫:

// 此處的 `animated` 必須為 YES
[self presentViewController:demoPresentViewController animated:YES completion:nil];

5、控制器的 dismiss,依然是正常方式呼叫:

// 此處的 `animated` 同樣必須為 YES
[self dismissViewControllerAnimated:YES completion:nil];

引數

observerView

observerView 為真正動畫的檢視。如果沒有配置 observerView,則預設配置為控制器的檢視 View
observerView 可以配置為 UITextFieldUITextView。配置為這兩類型別時,設定的 presentAnimationdismissAnimation 將會失去作用。檢視動畫會與鍵盤同步模態顯示,且保證鍵盤不會遮擋。

backViewType

backViewType 設定檢視背景樣式。自定義控制器的背景顏色將不會起作用。
目前支援樣式:

序號 型別 描述
0 GCTUIModalPresentBackViewTypeClear 透明
1 GCTUIModalPresentBackViewTypeDark 黑色半透明效果
2 GCTUIModalPresentBackViewTypeWhite 白色半透明效果
3 GCTUIModalPresentBackViewTypeBlurDark 黑色磨砂效果
4 GCTUIModalPresentBackViewTypeBlurWhite 白色磨砂效果

具體,可參照demo。

presentAnimation 和 dismissAnimation

模態顯示和模態消失動畫設定。
控制元件實現依據 UIViewControllerTransitioningDelegate,故而要想設定的動畫可以成功執行,需要在呼叫檢視模態顯示和模態消失的方法時,設定 animated 引數為 YES。否則,檢視顯示和消失的過程將沒有動畫效果。當然,直接設定為 GCTUIModalPresentAnimationNoneGCTUIModalDismissAnimationNone 一樣沒有動畫效果。
具體可參照demo。

反饋

lshxin89@126.com

相關文章