
如何用CircularProgress打造优雅取消体验isCancellable与取消态颜色定制完全指南【免费下载链接】CircularProgressCircular progress indicator for your macOS app项目地址: https://gitcode.com/gh_mirrors/ci/CircularProgressCircularProgress 是一款面向 macOS 应用的圆形进度指示器Swift Package支持进度环动画、不确定状态与取消按钮。本文带你完整掌握它的取消能力通过isCancellable显示悬停即现的╳取消按钮用cancelledStateColorHandler自由定制取消态颜色几行代码就能让长任务的取消体验优雅升级。先认识一下 CircularProgress 通过 Swift Package 集成要求 macOS 10.15当前版本 3.0.1已被 Gifski 等生产应用采用 核心视图类CircularProgress继承自NSView源码位于Sources/CircularProgress/CircularProgress.swift️ 支持手动设置progress0...1或绑定系统Progress实例自动更新✅ 进度到 100% 会显示动画对勾也支持不确定indeterminate旋转模式如何启用取消按钮isCancellable 的两种用法进度环内置了一个╳圆形按钮基于Sources/CircularProgress/Vendored/CustomButton.swift的CustomButton。鼠标悬停时淡入、移开自动隐藏体验非常自然。场景一手动更新进度直接使用.progress属性时需要显式开启取消功能并设置点击回调let progressView CircularProgress(size: 200) progressView.isCancellable true progressView.onCancelled { // 在这里取消任务、释放资源 }场景二绑定 Progress 实例设置progressInstance后视图会自动读取Progress对象的isCancellable默认为true无需任何额外配置取消按钮自动可用let progress Progress(totalUnitCount: 100) circularProgress.progressInstance progress用户点击按钮后内部会调用cancelProgress()取消已绑定的Progress如果存在并置位isCancelled true随即触发onCancelled回调。取消后默认长什么样自动去饱和默认情况下任务被取消后视图会自动做去饱和处理颜色饱和度降低 40%亮度降低 20%整体透明度降到 0.7这套逻辑实现在visualizeCancelledStateIfNecessary()方法中。如果你对默认效果满意什么都不用做。取消态颜色怎么定制cancelledStateColorHandler 回调若应用有强烈品牌风格可以用一个回调完全接管取消态颜色// 接收原始颜色返回取消后要显示的颜色 circularProgress.cancelledStateColorHandler { originalColor in originalColor.adjusting(saturation: -0.8) // 示例大幅去饱和 }两个关键细节设置回调后系统不再自动降低透明度透明度完全由你在回调中控制如果压根不想可视化取消状态把visualizeCancelledState设为false即可彻底关闭。adjusting(saturation:brightness:)是本库提供的便捷方法见Sources/CircularProgress/Utilities.swift按倍率缩放颜色的 HSBA 分量即可得到新颜色。实用技巧清单resetProgress()无动画地把进度清零并还原颜色与取消状态——开启下一轮任务前记得调用isFinished、isCancelled、isIndeterminate均支持 KVO便于外部观察showCheckmarkAtHundredPercent默认true控制 100% 时显示动画对勾取消后不会误显示对勾 完整可运行示例见Example/AppDelegate.swiftXcode 工程内附带示例 App相关文件导读文件说明Sources/CircularProgress/CircularProgress.swift主视图类isCancellable、isCancelled、cancelProgress()等Sources/CircularProgress/Utilities.swift颜色调整、CALayer 动画等工具扩展Sources/CircularProgress/Vendored/CustomButton.swift取消按钮底层实现Example/AppDelegate.swift取消行为示例应用readme.md官方文档与完整 API 清单至此CircularProgress 取消体验的三件套——启用取消按钮、默认去饱和、自定义取消色——已全部掌握按需取用即可让你的 macOS 应用告别干等进度条的尴尬时刻。✨【免费下载链接】CircularProgressCircular progress indicator for your macOS app项目地址: https://gitcode.com/gh_mirrors/ci/CircularProgress创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考