ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

TTGSnackbar 计时器管理技巧:3 种暂停与恢复自动消失的场景,让你的 iOS 提示条不再“秒消失“

TTGSnackbar 计时器管理技巧:3 种暂停与恢复自动消失的场景,让你的 iOS 提示条不再“秒消失“ TTGSnackbar 计时器管理技巧3 种暂停与恢复自动消失的场景让你的 iOS 提示条不再秒消失【免费下载链接】TTGSnackbarTTGSnackbar shows simple message and action button on the bottom or top of the screen with multi kinds of animation, which is written in Swift and inspired by Snackbar in Android. It also support showing custom view, icon image or multi action button.项目地址: https://gitcode.com/gh_mirrors/tt/TTGSnackbarTTGSnackbar 是 iOS 开发中广受欢迎的 Swift 提示条组件它像 Android 的 Snackbar 一样在屏幕顶部或底部弹出消息与操作按钮。很多新手在使用 TTGSnackbar 计时器时都遇到过同一个烦恼提示条上的撤销、重试按钮还没看清消息就自动消失了。本文将为你拆解 TTGSnackbar 的自动消失机制并分享 3 种实用的暂停与恢复技巧让你彻底掌控提示条的显示时长。理解 TTGSnackbar 的自动消失计时器TTGSnackbar 的自动消失由内部的一个dismissTimer驱动其核心是显示时长枚举 TTGSnackbarTypes.swiftshort1 秒默认时长适合极简提示middle3 秒适合带操作按钮的消息long5 秒适合较长文本forever永不自动消失必须手动调用dismiss()custom配合customDuration自定义任意秒数定时器一旦启动就会在倒计时结束后自动收起提示条。但如果用户正在阅读、操作进行到一半倒计时照常流逝体验就会打折扣。好在 TTGSnackbar 内置了三层暂停/恢复保护下面逐一来看。场景一App 退到后台时自动暂停倒计时最容易被忽视的问题是用户看到提示条后切到后台回微信几秒后切回来提示条已经消失。TTGSnackbar 针对这个场景内置了智能策略let snackbar TTGSnackbar(message: 文件已删除, duration: .middle) snackbar.pausesDismissTimerWhenAppInactive true // 退后台自动暂停 snackbar.show()当pausesDismissTimerWhenAppInactive为 true默认开启时App 进入后台会调用pauseDismissTimer()冻结倒计时回到前台再调用resumeDismissTimer()继续计时。具体实现在 TTGSnackbarInteractions.swift 的应用生命周期通知中。更贴心的是暂停不是清零重来而是记录剩余时间——比如 middle 的 3 秒还剩 1.8 秒回前台后继续从 1.8 秒开始倒计时不会突兀地缩短或延长展示。场景二用户触摸提示条时暂停倒计时很多操作按钮如撤销需要用户集中注意力点击。如果提示条在用户指尖按下的瞬间消失交互就完全失败了。TTGSnackbar 通过触摸事件接管了这个问题let snackbar TTGSnackbar( message: 文件已删除, duration: .middle, actionText: 撤销 ) { snackbar in restoreFile() } snackbar.pausesDismissTimerOnTouch true // 按下暂停松开恢复 snackbar.show()pausesDismissTimerOnTouch默认开启让倒计时在touchesBegan时暂停、在touchesEnded与touchesCancelled时恢复相关逻辑写在 TTGSnackbar.swift 中。这意味着用户只要手指碰到提示条倒计时就定格无论是想仔细阅读长消息还是犹豫要不要点操作按钮都不会因为超时而错过。场景三手动调用暂停与恢复 API除了内置的两种自动策略TTGSnackbar 还提供了完全手动控制的公开 APIpauseDismissTimer()和resumeDismissTimer()定义在 TTGSnackbarPresentation.swift。适合需要根据业务状态灵活控制的场景。典型用法提示条展示期间用户正在输入关键内容此时主动冻结倒计时let snackbar TTGSnackbar(message: 正在保存..., duration: .long) snackbar.show() // 业务需要时手动暂停 snackbar.pauseDismissTimer() // 业务完成后手动恢复 snackbar.resumeDismissTimer()注意两个细节手动暂停只对非 forever 时长生效forever本身就不启动计时器暂停时会保存remainingDismissTime恢复后按剩余时间继续不会从头再来进阶技巧forever 时长 手动 dismiss 组合如果连暂停都觉得不够用还可以使用TTGSnackbarDuration.forever让提示条永不自动消失完全由你掌控生命周期let snackbar TTGSnackbar( message: 上传完成, duration: .forever, actionText: 查看 ) { snackbar in snackbar.dismiss() } snackbar.show()这种模式特别适合必须让用户看到并确认的场景比如强制升级提醒、账号安全警告。配合customDuration还能实现任意秒数的精确控制let snackbar TTGSnackbar(message: 正在同步..., duration: .custom) snackbar.customDuration 8 // 精确显示 8 秒 snackbar.show()总结TTGSnackbar 的计时器管理从简单倒计时进化到了智能暂停恢复场景关键属性/方法适用场景App 退后台pausesDismissTimerWhenAppInactive多任务切换频繁的应用用户触摸提示条pausesDismissTimerOnTouch带撤销等操作按钮的提示业务手动控制pauseDismissTimer()/resumeDismissTimer()需要精确掌控展示时机掌握这 3 种 TTGSnackbar 计时器暂停与恢复技巧再配合forever与customDuration你就能为每个提示场景定制恰到好处的展示时长让消息提示既及时又从容彻底告别一闪而过的尴尬。【免费下载链接】TTGSnackbarTTGSnackbar shows simple message and action button on the bottom or top of the screen with multi kinds of animation, which is written in Swift and inspired by Snackbar in Android. It also support showing custom view, icon image or multi action button.项目地址: https://gitcode.com/gh_mirrors/tt/TTGSnackbar创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表