模態檢視控制器: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。
反饋
相關文章
- 檢視控制器
- [譯] 通過檢視控制器容器和子檢視控制器避免龐大的檢視控制器
- iOS開發-檢視與檢視控制器生命週期iOS
- 【asp.net core 系列】3 檢視以及檢視與控制器ASP.NET
- iOS 檢視控制器的生命週期iOS
- Python:檢視已安裝模組 和 檢視可匯入模組Python
- React研習之旅(二):檢視控制器-路由React路由
- 檢視BW執行狀態
- GitLab 的元件狀態檢視Gitlab元件
- Laravel 8 控制器可以直接返回物件給檢視嗎?Laravel物件
- Python檢視模組幫助/文件Python
- 如何檢視 Apache 模組是否正常Apache
- DashVector + DashScope升級多模態檢索
- DashVector + ModelScope 玩轉多模態檢索
- 8.1關於動態效能檢視
- Kylin系統檢視firewalld狀態
- firewalld:檢視版本/幫助/狀態
- SpringBoot(3)-MVC自動配置及自定義檢視控制器Spring BootMVC
- python檢視模組下的函式Python函式
- Yii框架之框架部署、控制器、檢視的呼叫、頁面的整合框架
- iOS開發-檢視控制器UINavigationController的介紹與基本使用iOSUINavigationController
- db2常用動態效能檢視DB2
- 系統狀態統計和檢視
- 使用 telescope 檢視 schedule 執行狀態
- 如何檢視CATIA許可證狀態
- 檢視一個通訊埠狀態
- Bootstrap4動態模態視窗jquery外掛bootjQuery
- 視覺多模態理解模型基礎視覺模型
- Python如何檢視安裝了哪些模組?Python
- Asp.Net MVC控制器獲取檢視傳值幾種方式ASP.NETMVC
- 3.4.4 檢視例項的靜默狀態
- linux檢視伺服器狀態命令--lsloadLinux伺服器
- 通過Python檢視Azure VM的狀態Python
- 檢視使用 MySQL Shell 的連線狀態MySql
- cmd 檢視防火牆狀態以及關閉防火牆
- Elasticsearch 檢視節點狀態資訊(qbit)Elasticsearch
- mysql檢視主從同步狀態的方法MySql主從同步
- Laravel 控制器 Controller 傳值到 檢視 View 的幾種方法總結LaravelControllerView