github地址: https://github.com/LuckyPia/Flashback
碼云地址:https://gitee.com/luckypia/flashback
效果圖
IMG_1595.jpg
|
IMG_1596.jpg
|
---|
前言
iOS的側滑手勢返回很難用有木有,而且只能從左側返回,因為不是系統級別,也不是強制使用,還有很多App還不支持,只能羨慕Android的手勢返回。為了解決該問題而制作的該庫,還是希望蘋果有一天能夠帶來系統級別的手勢返回。
Install
pod 'Flashback'
Get start
- 啟用(必要)
import Flashback
FlashbackManager.shared.isEnable = true
/// 禁用系統提供的手勢返回
self.navigationController?.interactivePopGestureRecognizer?.isEnabled = false
- 可配置
var config = FlashbackConfig.default
// 左右側啟用
config.enablePositions = [.left, .right]
// 觸發范圍
config.triggerRange = 20
// 震動啟用
config.vibrateEnable = true
// 震動強度
config.vibrateStyle = .light
// 指示器樣式
config.style = .custom
// 指示器背景顏色
config.backgroundColor = .black
// 指示器圖片顏色
config.indicatorColor = .yellow
// 上下滾動開啟
config.scrollEnable = true
// 震動啟用
config.vibrateEnable = true
// 震動強度
config.vibrateStyle = .light
// 忽略頂部高度(頂部不可側滑返回)
config.ignoreTopHeight = 150
// ...
FlashbackManager.shared.config = config
- 可重寫返回邏輯
extension ViewController {
/// 重寫返回
override func onFlashBack() {
super.onFlashBack()
}
}
- 可前置處理(統一處理彈窗,減少代碼污染)
FlashbackManager.shared.preFlashback = { [weak self] in
guard let `self` = self else { return true }
// 返回true繼續向下執行正常邏輯,返回false終止
return true
}
- 可通知返回,你可以全權接管返回邏輯
// 設置返回模式為通知
FlashbackManager.shared.config.backMode = .notify
// 通知回調
NotificationCenter.default.addObserver(forName: FlashbackManager.FlashbackNotificationName, object: nil, queue: nil) { [weak self] _ in
guard let `self` = self else { return }
// 執行返回邏輯
self.navigationController?.popViewController(animated: true)
}
Existing problems
- 左右兩側有一部分像素用于了側滑返回判斷,所以不可點擊,可通過修改triggerRange來改變觸發范圍大小。
Author
可通過郵件的方式聯系我: 664454335@qq.com