尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
SwiftyPickerPopover 按钮定制全解:Done/Cancel/Clear 回调的 10 种玩法
SwiftyPickerPopover 按钮定制全解Done/Cancel/Clear 回调的 10 种玩法【免费下载链接】SwiftyPickerPopoverA more convenient way to display a popover with a built-in picker, on iPhone/iPad of iOS9.项目地址: https://gitcode.com/gh_mirrors/sw/SwiftyPickerPopoverSwiftyPickerPopover 是一个专为 iOS 9 打造的 Swift 开源库只需几行代码就能在 iPhone 和 iPad 上弹出带内置选择器的 Popover 弹窗支持字符串、多列字符串、日期和倒计时四种选择器。很多新手只停留在弹出来选一下的层面却忽略了它的按钮定制能力。这篇文章将从按钮定制出发为你拆解 Done、Cancel、Clear 三个按钮及其回调的 10 种实用玩法看完就能让你的选择弹窗既专业又顺手。SwiftyPickerPopover 按钮定制入门认识三个按钮在使用 SwiftyPickerPopover 时每个弹窗顶部导航栏默认自带两个按钮左侧 Cancel取消、右侧 Done完成部分类型底部还有 Clear清除按钮。它们全部支持通过setDoneButton、setCancelButton、setClearButton这三个链式方法定制标题、字体、颜色和回调闭包相关实现可以在 AbstractPopover.swift 中看到统一的按钮参数结构。玩法 1最基本的 Done 回调——拿到选中结果最常用的场景就是用户点 Done 后拿到选中值StringPickerPopover(title: 选择城市, choices: [北京, 上海, 广州]) .setDoneButton(action: { popover, selectedRow, selectedString in print(选中了第 \(selectedRow) 行\(selectedString)) }) .appear(originView: sender, baseViewController: self)回调会把popover、selectedRow和selectedString一并传给你想回写界面、存储数据都很方便。示例可以参考 SampleViewController.swift 里的tappedStringPickerButton。玩法 2Cancel 回调——记录取消行为用户点 Cancel 时同样可以触发回调适合做埋点统计或重置界面状态.setCancelButton(action: { _, _, _ in print(用户取消了选择) })玩法 3实时监听——valueChange 回调不想等用户点 Done用setValueChange可以在每次滚动选择器时实时拿到当前值非常适合做联动预览.setValueChange(action: { _, _, selectedString in label.text 当前选择 selectedString })玩法 4Clear 按钮——一键清空回退日期选择器配合 Clear 按钮是经典组合点击后调用reload()让选择器回退到初始值DatePickerPopover(title: 选择日期) .setClearButton(action: { popover, selectedDate in popover.setSelectedDate(Date()).reload() }) .appear(originView: sender, baseViewController: self)玩法 5自定义按钮标题——中文与 emoji 都支持按钮标题可以随意替换甚至用 emoji 当图标.setDoneButton(title: , action: { popover, row, value in print(value) }) .setCancelButton(title: , action: { _, _, _ in })玩法 6自定义字体与颜色——打造品牌化弹窗每个按钮都能单独设置font和color与你的 App 主题保持一致.setDoneButton( font: UIFont.boldSystemFont(ofSize: 16), color: UIColor.orange, action: { popover, row, value in print(value) } )玩法 7Clear 按钮的自动隐藏与禁用细心的开发者会发现当 Clear 按钮未设置回调时它会被自动隐藏当当前选项已经是空值时按钮会变为禁用状态。这套逻辑在 StringPickerPopoverViewController.swift 的enableClearButtonIfNeeded()中实现你无需额外写代码。玩法 8自动消失——倒计时关闭弹窗配合disappearAutomatically可以做出选择后自动关闭的丝滑体验let p StringPickerPopover(title: 自动关闭, choices: [A, B, C]) .setDoneButton(action: { popover, row, value in print(value) }) p.appear(originView: sender, baseViewController: self) p.disappearAutomatically(after: 3.0, completion: { print(弹窗已自动关闭) })玩法 9点击弹窗外区域触发 Cancel 回调默认情况下点击弹窗外部会关闭并触发取消逻辑你也可以用setOutsideTapDismissing(allowed: false)禁止外部点击关闭配合setDimmedBackgroundView(enabled: true)加上半透明遮罩强制用户做出选择.setOutsideTapDismissing(allowed: false) .setDimmedBackgroundView(enabled: true)玩法 10按钮回调联动——刷新与回填组合拳把上面的玩法组合起来Done 回填数据Clear 重置状态valueChange 实时预览还能用reload()随时刷新弹窗内容实现复杂的交互逻辑完整案例见 DatePickerPopover.swift 与 CountdownPickerPopover.swift。三种弹窗的按钮回调参数对比弹窗类型Done/Cancel/Clear 回调参数核心源码StringPickerPopoverpopover, 选中行号, 选中字符串StringPickerPopover.swiftDatePickerPopoverpopover, 选中日期DatePickerPopover.swiftCountdownPickerPopoverpopover, 倒计时时长CountdownPickerPopover.swift踩坑提醒Clear 按钮在 StringPickerPopover 中会在选项数组头部插入空字符串作为清空值回调拿到的就是它。不传color时按钮会继承页面 tintColor想要统一样式记得显式设置。所有 setter 都返回 Self支持无限链式调用但别忘记最后调用appear才会展示弹窗。掌握了这 10 种玩法SwiftyPickerPopover 的按钮定制对你来说就没有秘密了。赶紧打开你的 Xcode 项目试试把选择弹窗做到既好看又顺手吧【免费下载链接】SwiftyPickerPopoverA more convenient way to display a popover with a built-in picker, on iPhone/iPad of iOS9.项目地址: https://gitcode.com/gh_mirrors/sw/SwiftyPickerPopover创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

BMW-YOLOv4-Training-Automation Docker 镜像构建完全指南:GPU、CPU、OPENMP 参数详解

BMW-YOLOv4-Training-Automation Docker 镜像构建完全指南:GPU、CPU、OPENMP 参数详解

BMW-YOLOv4-Training-Automation Docker 镜像构建完全指南:GPU、CPU、OPENMP 参数详解 【免费下载链接】BMW-YOLOv4-Training-Automation This repository allows you to get started with training a state-of-the-art Deep Learning model with little to no conf…

📅 2026/9/9 13:34:57
AI大模型qwythos本地部署实战:从零搭建私有化智能引擎

AI大模型qwythos本地部署实战:从零搭建私有化智能引擎

最近,AI大模型领域的一个新名字“qwythos”开始频繁出现在技术社区的讨论中。很多开发者第一眼看到它,可能会被“超强无审查”这样的描述所吸引,但随之而来的是一连串问号:这又是一个昙花一现的“开源明星”,还是真正能…

📅 2026/10/8 1:53:50
图片Skill开发实战:从概念到部署,构建标准化AI图片处理能力

图片Skill开发实战:从概念到部署,构建标准化AI图片处理能力

最近在技术社区和开发者群里,经常看到有人分享“一键生成流程图”、“自动设计海报”或者“智能抠图”的神奇效果。当你好奇地问“这是用什么做的?”,得到的回复往往是:“哦,我用了一个XX的Skill。” 你可能会有点懵&a…

📅 2026/9/15 15:49:45
MORE NEWS

更多资讯

📰

大模型推理优化:KV Cache原理、PagedAttention与GQA实战

1. 为什么每个搞大模型推理的人都绕不开 KV Cache如果你最近在折腾大模型本地部署,或者读过 vLLM、TensorRT-LLM、SGLang 这些推理框架的源码,一定见过KV Cache这个词。它不是什么新鲜概念,但绝对是决定推理速度和显存占用的头号选手。我第一…

📰

基于BERT的本地知识库问答系统实现

简介:本资源是一套完整的基于BERT的中文知识库问答系统实现方案,面向自然语言处理初学者、高校学生及课程设计实践者,解决结构化知识检索与语义问答落地难题。项目采用Python开发,完整复现了BERT微调知识库匹配的核心流程&#xf…

📰

FLUX 3 Image:4K生图与坐标网格,AI绘画从抽卡走向精准排版

FLUX 3 Image 的消息放出来之后,我朋友圈里玩 AI 绘画的人基本都炸了。等的不只是那个版本号,而是标题里那三件事:4K 生图、坐标网格精准排布,以及开放权重版数周内公开。前两个代表这代模型在产品能力上确实往前迈了一大步&#…

📰

2026 AI Agent面试指南:从ReAct原理到部署成本优化

2026 年 AI Agent 面试到底考什么?——这个问题我几乎每周都会被身边的候选人问一次。在经历了几十场 Agent 相关岗位的面试、也作为面试官筛过几百份简历之后,我的感受很明确:这个方向的考察已经从“概念科普”彻底进入“工程实证”阶段。你…

📰

OpenAI DevDay 2026深度回顾:dots、ChatGPT Spaces与GPT-6.1 Sol如何重塑AI工作流

1. 从一场发布会看AI工具链的"去中心化"信号OpenAI DevDay 2026 一口气甩出 20 多项发布,这个密度本身就值得琢磨。过去几年,这类发布会的节奏通常是"一个主角若干配角",比如某代模型唱戏,其他都是陪衬。但这…

📰

大气波导电波传播的抛物方程法:从原理到仿真实践

简介:本讲义以大气波导环境为背景,系统梳理电波传播的关键理论与建模方法,适合通信工程、电磁场与微波技术方向的学生及从事超视距通信、雷达探测相关工作的技术人员学习。内容从大气折射的四种基本类型切入,逐步讲解折射率与修正…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬