这是一个可定制的库,实现了 macOS 风格的 emoji 选择器弹出框。
如果您对我是如何开发它以及在此过程中遇到的困难感兴趣,您可以阅读我在 Medium 和 Habr 上发表的文章。如果您喜欢这个项目,请不要忘记 put star ★
(点亮星标)。
如果您知道如何修复它,欢迎参与讨论。
如果您使用 MCEmojiPicker
,请通过 Pull Request 添加您的应用程序。 有关更多信息,您可以查看贡献指南。
4.2
& 5.0
CocoaPods 是 Cocoa 项目的依赖管理器。 有关使用和安装说明,请访问他们的网站。 要使用 CocoaPods 将 MCEmojiPicker
集成到您的 Xcode 项目中,请在您的 Podfile
中指定它
pod 'MCEmojiPicker'
Swift Package Manager 是一个用于管理 Swift 代码分发的工具。它与 Swift 构建系统集成,以自动执行下载、编译和链接依赖项的过程。
要使用 Xcode 11 将 MCEmojiPicker
集成到您的 Xcode 项目中,请在 Project > Swift Packages
中指定它
https://github.com/izyumkin/MCEmojiPicker
如果您不喜欢使用任何上述依赖管理器,您可以手动将 MCEmojiPicker
集成到您的项目中。 将 Source/MCEmojiPicker
文件夹放在您的 Xcode 项目中。 确保启用 Copy items if needed
和 Create groups
。
创建 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)
}
}
sourceView
是包含弹出框锚定矩形的视图。 您可以创建任何 UIView
实例并在该属性中设置它。
选中表情符号类别的颜色。 此属性的默认值为 .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
像系统弹出框一样使用。 所有设置都可以在方法初始化程序中使用。
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
)
🌍 此库支持所有现有的本地化