轻量级 iOS 颜色选择器 EFColorPicker
EFColorPicker 是一个纯 Swift 的轻量级 iOS 颜色选择器,受 MSColorPicker 启发。
https://github.com/EFPrefix/EFCountingLabel
概述
iOS 颜色选择器组件,它能够让用户选择自定义颜色,关键特性如下:
- 支持 iPhone 和 iPad
- 自适应的用户界面
- 支持 RGB 和 HSB 两种颜色模式
- 比较完善的文档和注释
- 支持 iOS 8.0 (iPhone & iPad) 及更高版本
预览
示例
- 利用
git clone
命令下载本仓库; - 利用 cd 命令切换到 Example 目录下,执行
pod install
命令; - 随后打开
EFColorPicker.xcworkspace
编译即可。
或执行以下命令:
- git clone git@github.com:EFPrefix/EFColorPicker.git; cd EFColorPicker/Example; pod install; open EFColorPicker.xcworkspace
环境
- iOS 8.0+
- Xcode 10.1+
- Swift 4.2+
- CocoaPods 1.6.0.beta.2+
安装
EFColorPicker 可以通过 CocoaPods 进行获取。只需要在你的 Podfile 中添加如下代码就能实现引入:
- pod "EFColorPicker"
使用
- 首先,需要导入 EFColorPicker 库:
- import EFColorPicker
- 接下来,可以通过纯代码调用:
- let colorSelectionController = EFColorSelectionViewController()
- let navCtrl = UINavigationController(rootViewController: colorSelectionController)
- navCtrl.navigationBar.backgroundColor = UIColor.white
- navCtrl.navigationBar.isTranslucent = false
- navCtrl.modalPresentationStyle = UIModalPresentationStyle.popover
- navCtrl.popoverPresentationController?.delegate = self
- navCtrl.popoverPresentationController?.sourceView = sender
- navCtrl.popoverPresentationController?.sourceRect = sender.bounds
- navCtrl.preferredContentSize = colorSelectionController.view.systemLayoutSizeFitting(
- UILayoutFittingCompressedSize
- )
- colorSelectionController.delegate = self
- colorSelectionController.color = self.view.backgroundColor ?? UIColor.white
- if UIUserInterfaceSizeClass.compact == self.traitCollection.horizontalSizeClass {
- let doneBtn: UIBarButtonItemUIBarButtonItem = UIBarButtonItem(
- title: NSLocalizedString("Done", comment: ""),
- style: UIBarButtonItemStyle.done,
- target: self,
- action: #selector(ef_dismissViewController(sender:))
- )
- colorSelectionController.navigationItem.rightBarButtonItem = doneBtn
- }
- self.present(navCtrl, animated: true, completion: nil)
也可以通过 Storyboard 调用:
- if "showPopover" == segue.identifier {
- guard let destNav: UINavigationController = segue.destination as? UINavigationController else {
- return
- }
- if let size = destNav.visibleViewController?.view.systemLayoutSizeFitting(UILayoutFittingCompressedSize) {
- destNav.preferredContentSize = size
- }
- destNav.popoverPresentationController?.delegate = self
- if let colorSelectionController = destNav.visibleViewController as? EFColorSelectionViewController {
- colorSelectionController.delegate = self
- colorSelectionController.color = self.view.backgroundColor ?? UIColor.white
- if UIUserInterfaceSizeClass.compact == self.traitCollection.horizontalSizeClass {
- let doneBtn: UIBarButtonItemUIBarButtonItem = UIBarButtonItem(
- title: NSLocalizedString("Done", comment: ""),
- style: UIBarButtonItemStyle.done,
- target: self,
- action: #selector(ef_dismissViewController(sender:))
- )
- colorSelectionController.navigationItem.rightBarButtonItem = doneBtn
- }
- }
- }
你可以通过修改 EFColorSelectionViewController
的 isColorTextFieldHidden
属性来控制颜色编辑框的可见性,效果如下:
具体可参考示例程序。
- 最后,不要忘记调用的 ViewController 需要继承 EFColorSelectionViewControllerDelegate 来及时获取颜色的变化:
- // MARK:- EFColorSelectionViewControllerDelegate
- func colorViewController(colorViewCntroller: EFColorSelectionViewController, didChangeColor color: UIColor) {
- self.view.backgroundColor = color
- // TODO: You can do something here when color changed.
- print("New color: " + color.debugDescription)
- }
80%的人都看过的文章
- Apple 发布 iOS 12.4 Beta 6,macOS Mojave 10.14.6 Beta 4和watchOS 5.3 Beta 5
- 微信推出7.0安卓测试版,可提前尝鲜
- iOS 12.1.1出问题:显示4G网络却无法上网
- Apple发布iOS 12.1.3,macOS 10.14.3,watchOS 5.1.3和tvOS 12.1.2
课后答案张九龄《望月怀远》阅读答案及全诗翻译赏析
望月怀远张九龄海上生明月,天涯共此时。情人怨遥夜,竟夕起相思。灭烛怜光满,披衣觉露滋。不堪盈手赠,还寝梦佳期。注释⑴怀远:怀念远方的亲人。⑵最前面两句:辽阔无边的大海上升起一轮明月,使人想起了远在天涯……
课后答案王安石《次韵唐公三首其三旅思》阅读答案
次韵唐公三首其三旅思王安石此身南北老,愁见问征途。地大蟠三楚,天低入五湖。看云心共远,步月影同孤。慷慨秋风起,悲歌不为鲈②。注:①张壤,字唐公,北宋嘉佑六年契丹国母生辰使,王安石友人。②《晋书&mid……
笔记心得各级干部学习执法为民心得体会
“各级干部都要牢固树立全心全意为人民服务的思想和真心实意对人民负责的精神,做到心里装着群众,凡事想着群众,工作依靠群众,一切为了群众。要坚持权为民所用,情为民所系,利为民所谋,为群众诚……
笔记心得寒假大学生社会实践心得体会
自从走进了大学,就业问题就似乎总是围绕在我们的身边,成了说不完的话题。在现今社会,招聘会上的大字报都总写着“有经验者优先”,可还在校园里面的我们这班学子社会经验又会拥有多少……
协议书济南市某美容院转让协议第2篇
__________美容院根据中华人民共和国国务院劳动法规和________市私营企业劳动管理实施办法,结合本美容院经营的具体所需今制订此劳动合同书。 双……
剧本劳模宣传短剧剧本《阿咪也想当劳模》
1、机械厂门卫处,日,外。 清早,机械厂班长李玉伟开着别克赛欧小汽车驶进厂区,门卫室内的保安一边按开电动门,一边朝李玉伟摆手。 李玉伟:(摇下车窗,笑着打招呼)小秦,早。 保安小秦:(笑着)……
教程灰雀说课稿
灰雀说课稿 灰雀说课稿(一): 《灰雀》说课稿 一、说教材 《灰雀》是义务教育课程标准实验教科书,小学语文第五册第二单元的一篇讲读课文。这篇课文记叙了列宁在莫斯科郊外养病期间爱护灰雀的故事。列……
课件“吴隐之字处默,濮阳鄄城人”阅读答案及原文
吴隐之字处默,濮阳鄄城人。美姿容,善谈论,博涉文史,以儒雅标名。弱冠而介立,有清操,虽儋石无储,不取非其道。事母孝谨,及其执丧,哀毁过礼。与太常韩康伯邻居,康伯母,贤明妇人也,每闻隐之哭声,辍餐投箸,……