github地址: https://github.com/LuckyPia/Flashback
碼云地址:https://gitee.com/luckypia/flashback
效果圖
IMG_1595.jpg
|
IMG_1596.jpg
|
---|
前言
iOS的側(cè)滑手勢返回很難用有木有阵谚,而且只能從左側(cè)返回嗡午,因為不是系統(tǒng)級別,也不是強制使用,還有很多App還不支持,只能羨慕Android的手勢返回劝篷。為了解決該問題而制作的該庫勘高,還是希望蘋果有一天能夠帶來系統(tǒng)級別的手勢返回仅乓。
Install
pod 'Flashback'
Get start
- 啟用(必要)
import Flashback
FlashbackManager.shared.isEnable = true
/// 禁用系統(tǒng)提供的手勢返回
self.navigationController?.interactivePopGestureRecognizer?.isEnabled = false
- 可配置
var config = FlashbackConfig.default
// 左右側(cè)啟用
config.enablePositions = [.left, .right]
// 觸發(fā)范圍
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
// 忽略頂部高度(頂部不可側(cè)滑返回)
config.ignoreTopHeight = 150
// ...
FlashbackManager.shared.config = config
- 可重寫返回邏輯
extension ViewController {
/// 重寫返回
override func onFlashBack() {
super.onFlashBack()
}
}
- 可前置處理(統(tǒng)一處理彈窗,減少代碼污染)
FlashbackManager.shared.preFlashback = { [weak self] in
guard let `self` = self else { return true }
// 返回true繼續(xù)向下執(zhí)行正常邏輯缕棵,返回false終止
return true
}
- 可通知返回,你可以全權接管返回邏輯
// 設置返回模式為通知
FlashbackManager.shared.config.backMode = .notify
// 通知回調(diào)
NotificationCenter.default.addObserver(forName: FlashbackManager.FlashbackNotificationName, object: nil, queue: nil) { [weak self] _ in
guard let `self` = self else { return }
// 執(zhí)行返回邏輯
self.navigationController?.popViewController(animated: true)
}
Existing problems
- 左右兩側(cè)有一部分像素用于了側(cè)滑返回判斷,所以不可點擊雕蔽,可通過修改triggerRange來改變觸發(fā)范圍大小嚣艇。
Author
可通過郵件的方式聯(lián)系我: 664454335@qq.com