news 2026/5/23 18:09:44

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/5/22 22:10:34

GLM-4-9B-Chat-1M:开启超长上下文大模型技术新纪元

GLM-4-9B-Chat-1M&#xff1a;开启超长上下文大模型技术新纪元 【免费下载链接】glm-4-9b-chat-1m 项目地址: https://ai.gitcode.com/zai-org/glm-4-9b-chat-1m 智谱AI最新发布的GLM-4-9B-Chat-1M开源对话模型&#xff0c;以突破性的100万tokens上下文长度&#xff08…

作者头像 李华
网站建设 2026/5/23 14:36:57

PiliPalaX B站客户端完全指南:从入门到精通

PiliPalaX B站客户端完全指南&#xff1a;从入门到精通 【免费下载链接】PiliPalaX PiliPalaX 是使用Flutter开发的BiliBili第三方客户端&#xff0c;感谢使用&#xff0c;欢迎Star。 项目地址: https://gitcode.com/gh_mirrors/pi/PiliPalaX PiliPalaX 是一款基于 Flut…

作者头像 李华
网站建设 2026/5/22 16:22:59

27、Python 包管理全解析

Python 包管理全解析 在 Python 开发中,包管理是一项至关重要的技能。它涉及到如何将自己的代码打包、发布,以及如何管理项目中的依赖。下面我们将详细介绍 Python 包管理的几个重要方面。 1. 入口点(Entry Points) 入口点是一个相对复杂但又很重要的概念。从高层次来看,…

作者头像 李华
网站建设 2026/5/21 7:11:37

CodeGeeX2私有化部署终极指南:企业级安全配置与优化实践

CodeGeeX2私有化部署终极指南&#xff1a;企业级安全配置与优化实践 【免费下载链接】CodeGeeX2 CodeGeeX2: A More Powerful Multilingual Code Generation Model 项目地址: https://gitcode.com/gh_mirrors/co/CodeGeeX2 在企业级应用场景中&#xff0c;数据安全与合规…

作者头像 李华
网站建设 2026/5/12 10:53:12

35、Python数据持久化与命令行工具开发

Python数据持久化与命令行工具开发 1. 数据持久化工具 在数据持久化方面,有两个重要的工具值得关注,分别是Storm和SQLAlchemy ORM。 1.1 Storm库的使用 Storm库可以用来操作数据库。即使记录不是使用Storm库插入的,也能正确显示。例如: # 执行查询操作 jmjones@dinkgu…

作者头像 李华