MCEmojiPicker
关于
这是一个可定制的库,实现了 macOS 风格的表情选择弹窗。
如果您对我如何开发它以及在这个过程中遇到的困难感兴趣,您可以在 Medium 和 Habr 上阅读相关文章。如果您喜欢这个项目,请别忘了给它 star ★
。
限制
- 不支持片段表情。例如
- 支持:🤝🏻 🤝🏿
- 不支持:🫱🏿🫲🏻 🫱🏼🫲🏿
如果您知道如何修复它 - 欢迎加入 讨论。
使用 Apps
如果您使用 MCEmojiPicker
,请通过 Pull Request 添加您的应用程序。有关更多信息,您可以通过 贡献指南 查看。
导航
需求
- Swift
4.2
&5.0
- 适用于 iOS 11.1+ 的准备就绪
- 从 iOS 13.0 开始支持 SwiftUI
安装
CocoaPods
CocoaPods 是 Cocoa 项目的依赖管理器。有关使用和安装说明,请访问他们的网站。要将 MCEmojiPicker
集成到您的 Xcode 项目中,请使用 CocoaPods 在您的 Podfile
中指定它。
pod 'MCEmojiPicker'
Swift 包管理器
Swift 包管理器 是用于管理 Swift 代码分发的工具。它与 Swift 构建系统集成,以自动化下载、编译和链接依赖项的过程。
使用 Xcode 11 将 MCEmojiPicker
集成到您的 Xcode 项目中,请在 项目 > Swift 包
中指定它。
https://github.com/izyumkin/MCEmojiPicker
手动
如果您不想使用上述任何依赖管理器,您可以手动将 MCEmojiPicker
集成到项目中。将 Source/MCEmojiPicker
文件夹放在您的 Xcode 项目中。请确保启用 如有需要则复制项目
和 创建分组
。
快速入门
创建 UIButton
并添加作为动作的选择器。
@objc private func selectEmojiAction(_ sender: UIButton) {
let viewController = MCEmojiPickerViewController()
viewController.delegate = self
viewController.sourceView = sender
present(viewController, animated: true)
}
然后在代理方法中接收表情符号。
extension ViewController: MCEmojiPickerDelegate {
func didGetEmoji(emoji: String) {
emojiButton.setTitle(emoji, for: .normal)
}
}
用法
选择的表情分类色调颜色
选择的表情分类颜色。此属性的默认值为 .systemBlue
。
viewController.selectedEmojiCategoryTintColor = .systemRed
箭头方向
EmojiPicker 中箭头的方向。此属性的默认值为 .up
。
viewController.arrowDirection = .up
水平缩进
离 sourceView
边框的缩进。此属性的默认值为 0
。
viewController.horizontalInset = 0
选择后是否关闭
定义是否在表情选择后关闭表情选择器。此属性的默认值为 true
。
viewController.isDismissAfterChoosing = true
自定义高度
为EmojiPicker自定义高度。此属性的默认值是nil
。
viewController.customHeight = 300
反馈生成器样式
反馈生成器样式。要关闭,将此参数设置为nil
。此属性的默认值是.light
。
viewController.feedBackGeneratorStyle = .soft
SwiftUI
可像系统浮窗使用。所有设置都在方法初始化器中可用。
Button(selectedEmoji) {
isPresented.toggle()
}.emojiPicker(
isPresented: $isPresented,
selectedEmoji: $selectedEmoji
)
或直接与MCEmojiPickerViewController的SwiftUI包装器交互
MCEmojiPickerRepresentableController(
isPresented: $isPresented,
selectedEmoji: $selectedEmoji,
arrowDirection: .up,
customHeight: 380.0,
horizontalInset: .zero,
isDismissAfterChoosing: true,
selectedEmojiCategoryTintColor: .systemBlue,
feedBackGeneratorStyle: .light
)
本地化
🌍 此库支持所有现有本地化
待办项
- 选择表情符号的主要功能
- 暗黑模式
- 用于跳转到表情符号分区的分段控制
- 自动调整适用于iOS版本的emoji相关设置
- 从弹出菜单中选择肤色
- 常用
- 搜索栏和搜索结果