用Swift重寫著名側滑框架ICSDrawerController

jopen 8年前發布 | 14K 次閱讀 Apple Swift開發 ICSDrawerController-Swift

根據著名側滑框架ICSDrawerController的源代碼,重新用Swift寫了一遍,并且做了功能優化,方便用Swift的用戶直接進行集成使用

主要使用的類是SCSDrawerViewController.swift
該類提供了close()和open()的方法,可以方便的在外界直接開啟和關閉側滑
具體用法可以在Appdelegate里面將控制器作為成員變量

  • var drawerVc:SCSDrawerViewController!
let colorVc = SCSColorsViewController() let planVc = SCSPlainColorViewController() let nav = NavViewController(rootViewController:planVc) 
drawerVc = SCSDrawerViewController(leftViewController: colorVc, centerViewController: nav) 
window!.rootViewController = drawerVc 

在需要關閉的類里面定義關閉按鈕,按鈕的點擊事件里面調用關閉方法:

let appdelegate = UIApplication.sharedApplication().delegate as? AppDelegate

appdelegate!.drawerVc.close()

同時還提供了刷新當前主控制器的方法和替換當前主控制的方法

func reloadCenterViewControllerUsingBlock(reloadBlock:() -> ())
func replaceCenterViewControllerWithViewController(viewController:protocol<SCSDrawerControllerChild, SCSDrawerControllerPresenting>)

以及不帶動畫效果的替換當前主控制器的方法

func replaceCenterViewControllerWithViewControllerNoanimate(viewController:protocol<SCSDrawerControllerChild, SCSDrawerControllerPresenting>)

因為原作者的側滑手勢用的是pan手勢,這樣在主控制進行push動作的時候,會影響push控制器的edgePan手勢,所以我在此基礎上進行了修改側滑打開替換成UISrceenEdgePan手勢,關閉還是使用Pan手勢

如果需要OC版的代碼,請訪問原作者的GitHub地址:
https://github.com/icecreamstudios/ICSDrawerController

原作者的Demo效果:


項目主頁:http://www.baiduhome.net/lib/view/home/1450010654781

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