模態檢視控制器:GCTUIModalPresentationViewController
GCTUIModalPresentationViewController
基於 UIViewControllerTransitioningDelegate
實現的快速配置模態控制器的動畫實現方案。
功能
- 支援 13 種
presentAnimation
動畫配置。 - 支援 13 種
dismissAnimation
動畫配置。 - 支援 5 種背景樣式設定。
- 支援背景點選後檢視是否
dismiss
的配置。 - 支援
UITextField
、UITextView
鍵盤同步模態顯示。
安裝
支援手動匯入。
直接匯入工程中 GCTUIModalPresentationViewController
檔案,繼承即可使用。
支援 Cocoapods
匯入
pod 'GCTUIModalPresentationViewController'
使用
1、建立 ViewControlle
繼承自 GCTUIModalPresentationViewController
。
2、在自定義的 ViewController
中建立自定義檢視(繪製UI:可使用 XIB
、Frame
),保證自定義檢視為最終正常顯示的位置。
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
可以配置為 UITextField
、UITextView
。配置為這兩類型別時,設定的 presentAnimation
和 dismissAnimation
將會失去作用。檢視動畫會與鍵盤同步模態顯示,且保證鍵盤不會遮擋。
backViewType
backViewType
設定檢視背景樣式。自定義控制器的背景顏色將不會起作用。
目前支援樣式:
序號 | 型別 | 描述 |
---|---|---|
0 | GCTUIModalPresentBackViewTypeClear | 透明 |
1 | GCTUIModalPresentBackViewTypeDark | 黑色半透明效果 |
2 | GCTUIModalPresentBackViewTypeWhite | 白色半透明效果 |
3 | GCTUIModalPresentBackViewTypeBlurDark | 黑色磨砂效果 |
4 | GCTUIModalPresentBackViewTypeBlurWhite | 白色磨砂效果 |
具體,可參照demo。
presentAnimation 和 dismissAnimation
模態顯示和模態消失動畫設定。
控制元件實現依據 UIViewControllerTransitioningDelegate
,故而要想設定的動畫可以成功執行,需要在呼叫檢視模態顯示和模態消失的方法時,設定 animated
引數為 YES
。否則,檢視顯示和消失的過程將沒有動畫效果。當然,直接設定為 GCTUIModalPresentAnimationNone
和 GCTUIModalDismissAnimationNone
一樣沒有動畫效果。
具體可參照demo。
反饋
相關文章
- [譯] 通過檢視控制器容器和子檢視控制器避免龐大的檢視控制器
- 檢視與檢視控制器生命週期
- iOS10 UI教程檢視的繪製與檢視控制器和檢視iOSUI
- 【asp.net core 系列】3 檢視以及檢視與控制器ASP.NET
- Oracle檢視:常用動態效能檢視Oracle
- iOS 檢視控制器的生命週期iOS
- 理解模型,檢視和控制器(C#)模型C#
- 動態效能檢視
- React研習之旅(二):檢視控制器-路由React路由
- ASM動態效能檢視ASM
- 動態建立ImageView檢視View
- objc系列譯文(5.3):檢視控制器轉場OBJ
- 輕量級檢視控制器 無腦意譯
- iOS11人機互動指南-App結構-03模態檢視 ModalityiOSAPP
- DashVector + DashScope升級多模態檢索
- 檢視BW執行狀態
- 檢視看防火牆狀態防火牆
- oracle常用的動態檢視Oracle
- (轉)Oracle 動態效能檢視Oracle
- V$PGASTAT動態效能檢視AST
- 動態效能檢視基礎
- 動態建立檢視指令碼指令碼
- Laravel 8 控制器可以直接返回物件給檢視嗎?Laravel物件
- 為什麼前端模型-檢視-控制器MVC會死?前端模型MVC
- iOS開發 如何通過檢視(view)獲取該檢視所在的控制器(viewController)iOSViewController
- DashVector + ModelScope 玩轉多模態檢索
- mysql狀態檢視 QPSTPS快取命中率檢視MySql快取
- 8.1關於動態效能檢視
- 轉:系統動態檢視速查
- Oracle的v$動態檢視 收藏Oracle
- 系統狀態檢視工具Sysstat
- 動態返回結果的檢視
- firewalld:檢視版本/幫助/狀態
- GitLab 的元件狀態檢視Gitlab元件
- mysql狀態檢視 QPS/TPS/快取命中率檢視MySql快取
- Yii框架之框架部署、控制器、檢視的呼叫、頁面的整合框架
- 12款最好的 jQuery 模態視窗外掛jQuery
- 使用 telescope 檢視 schedule 執行狀態