Swift常见TabBar多次点击处理Demo
Swift 里的 TabBar 一直挺绕的,尤其你想搞点不那么“系统”的行为,比如多次点击同一个 Tab 触发刷新、弹窗或者别的交互。
TabBarController 的多 Tap 响应这个小 Demo,刚好帮你把思路理清楚了,还带代码,直接上手调试也方便。
UITabBarController
本身就挺好用的,默认切换、管理多个页面都流畅。但你要自定义,比如点第二次 Tab 不跳转页面而是刷新内容,就得动点手脚了。
方法比较简单,创建一个自己的CustomTabBarController
子类,重写tabBar(_:didSelect:)
或者监听选中状态的变化。加点判断和Timer
逻辑,多 Tap 就能搞定。
项目结构也比较清晰:CustomTabBarController.swift
负责主逻辑,每个 Tab 配一个ViewController.swift
,资源和Main.storyboard
也都准备好了,拖进去直接能跑。
要注意的是多 Tap 的判断,不建议用时间戳对比太复杂,Swift 里用DispatchSourceTimer
或 GCD 做个节流就挺靠谱的。
如果你 Tab 那块功能比较多,比如点一下刷新、连点两下回到首页、点三下弹个提示,或者你想实现类似微信那种“连点消息 Tab 自动滚动到顶部”的交互,这套逻辑就合适。
另外你也可以拓展下,比如加个UISwipeGestureRecognizer
实现 Tab 间滑动切换,或者引入Combine
做响应式绑定,效果更丝滑。
想进一步了解自定义 TabBar 效果或控件的,可以参考:自定义 UITabbarController 的 tabBar 界面效果 和 自定义 TabBar 控件,里面细节讲得也挺全。
,如果你正在用 Swift 写 App、想做点不那么“标准”的交互,这个小 Demo 还是蛮值得一看的。
评论区