news 2026/8/1 8:51:46

iOS开发 简单的自定义emoji表情键盘封装

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
iOS开发 简单的自定义emoji表情键盘封装

1:其实很简单,就是利用瀑布流是想的一个keyboardview,当呼出键盘时替换为自定义的表情键盘。

OK,别的不说了,先来代码吧! 可以直接复制使用噢~当然里面有例如 SCREEN_WIDTH,是对屏幕大小的define 和 类似_DeleteBtn.lx_right的使用,这是对view的扩展。文章所包含的代码等,如果需要请到我的资源下载这篇文章的资源哦。代码就是这篇文章的代码。链接:https://download.csdn.net/download/lijianfei111/92456072?spm=1001.2014.3001.5503

一:首先是自定一键盘的 .h 文件

#import <UIKit/UIKit.h> NS_ASSUME_NONNULL_BEGIN @interface stickerKeyboardView : UIView<UICollectionViewDelegateFlowLayout,UICollectionViewDataSource> @property (nonatomic,strong) UICollectionView * StickerKB_CollecView; @property (nonatomic,assign) CGRect Or_frame; @property (nonatomic,strong) NSMutableArray * emojjArr; @property (nonatomic,strong) UIButton * DeleteBtn; @property (nonatomic,strong) UIButton * SendBtn; @property (nonatomic,strong) UIView * btnbackView; @property (nonatomic,copy) void(^PickemojjBlock)(NSString * emojjstr); @property (nonatomic,copy) void(^emoDeleteBlock)(void); @property (nonatomic,copy) void(^sendEmojjBlock)(void); @end

二:然后是 .m 文件中的代码,这里面内置了表情数组,如果你有其他的emoji表情,可进行增加或替换。

#import "stickerKeyboardView.h" @implementation stickerKeyboardView -(instancetype)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { self.backgroundColor = [UIColor whiteColor]; self.emojjArr = [[NSMutableArray alloc]init]; self.Or_frame = frame; [self presetUI]; NSArray * emolis = @[ @{ @"char": @"😍" }, @{ @"char": @"😁" }, @{ @"char": @"😘" }, @{ @"char": @"🍎" }, @{ @"char": @"🍏" }, @{ @"char": @"🍊" }, @{ @"char": @"🍋" }, @{ @"char": @"😖" }, @{ @"char": @"😉" }, @{ @"char": @"😏" }, @{ @"char": @"🍒" }, @{ @"char": @"🍇" }, @{ @"char": @"🍉" }, @{ @"char": @"🍓" }, @{ @"char": @"🍑" }, @{ @"char": @"🍈" }, @{ @"char": @"🍌" }, @{ @"char": @"🍐" }, @{ @"char": @"🍍" }, @{ @"char": @"🍆" }, @{ @"char": @"🍅" }, @{ @"char": @"🍠" }, @{ @"char": @"🌽" }, @{ @"char": @"😳" }, @{ @"char": @"😡" }, @{ @"char": @"😓" }, @{ @"char": @"😭" }, @{ @"char": @"😱" }, @{ @"char": @"😜" }, @{ @"char": @"😰" }, @{ @"char": @"😢" }, @{ @"char": @"😚" }, @{ @"char": @"😄" }, @{ @"char": @"😀" }, @{ @"char": @"😪" }, @{ @"char": @"😣" }, @{ @"char": @"😔" }, @{ @"char": @"😠" }, @{ @"char": @"😌" }, @{ @"char": @"😝" }, @{ @"char": @"😂" }, @{ @"char": @"😥" }, @{ @"char": @"😞" }, @{ @"char": @"😒" },
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/30 18:48:49

YimMenuV2:5大模块揭秘C++20模板编程的终极指南

YimMenuV2&#xff1a;5大模块揭秘C20模板编程的终极指南 【免费下载链接】YimMenuV2 Unfinished WIP 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenuV2 你是否曾对C模板编程感到困惑&#xff1f;YimMenuV2这个开源项目将彻底改变你的看法&#xff01;这是一…

作者头像 李华
网站建设 2026/7/31 15:07:54

掌握建筑环境数据科学:Ladybug环境分析工具完全指南

掌握建筑环境数据科学&#xff1a;Ladybug环境分析工具完全指南 【免费下载链接】ladybug &#x1f41e; Core ladybug library for weather data analysis and visualization 项目地址: https://gitcode.com/gh_mirrors/lad/ladybug 在建筑设计与城市规划领域&#xff…

作者头像 李华
网站建设 2026/7/30 12:18:05

34、数据持久化:从简单序列化到关系序列化

数据持久化:从简单序列化到关系序列化 简单序列化与 ZODB 在数据处理过程中,有时我们只需要简单地保存和存储 Python 对象以供后续使用。之前介绍的脚本导入了 yaml 和 custom_class 模块,从先前创建的 YAML 文件中创建了一个可读文件对象,将 YAML 文件加载到一个对象…

作者头像 李华
网站建设 2026/7/30 8:07:13

36、Python 命令行工具的高级用法与设计模式

Python 命令行工具的高级用法与设计模式 1. 多参数选项的使用模式 在 Python 中,使用 optparse 模块时,默认情况下一个选项只能接受一个参数,但我们可以改变这个设置。下面是一个示例,它实现了一个类似 ls 命令的功能,能够同时显示两个目录的内容。 #!/usr/bin/en…

作者头像 李华
网站建设 2026/7/30 1:23:36

Charticulator图表设计神器:3个核心技巧让数据会说话

还在为Excel图表千篇一律的样式而烦恼&#xff1f;想要制作专业级的定制化数据可视化却苦于编程门槛太高&#xff1f;Charticulator正是为你量身打造的解决方案。作为微软开发的交互式图表设计工具&#xff0c;它让任何人都能通过直观的拖拽操作&#xff0c;创建出令人惊艳的数…

作者头像 李华
网站建设 2026/7/31 21:47:23

ASMR下载神器使用指南:打造个人专属听觉空间

ASMR下载神器使用指南&#xff1a;打造个人专属听觉空间 【免费下载链接】asmr-downloader A tool for download asmr media from asmr.one(Thanks for the asmr.one) 项目地址: https://gitcode.com/gh_mirrors/as/asmr-downloader 在数字时代&#xff0c;寻找片刻宁静…

作者头像 李华