自定义键盘类VolumeInputKeyboardView:

VolumeInputKeyboardView.h文件:

 #import <UIKit/UIKit.h>

 NS_ASSUME_NONNULL_BEGIN

 @interface VolumeInputKeyboardView : UIView
@property(weak, nonatomic) UITextField *m_textField;
@end NS_ASSUME_NONNULL_END

VolumeInputKeyboardView.m文件:

 switch  ::
#import <UIKit/UIKit.h> NS_ASSUME_NONNULL_BEGIN @interface VolumeInputKeyboardView : UIView
@property(weak, nonatomic) UITextField *m_textField;
@end NS_ASSUME_NONNULL_END switch ::
#import "VolumeInputKeyboardView.h"
#import "CommonFunc.h" @implementation VolumeInputKeyboardView - (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self createTopBar];
float width = (CGRectGetWidth(self.frame) - ) / ;
for(int i = ; i < ; ++i)
{
[self createKey:[NSString stringWithFormat:@"%d",i] posX:(width * ((i - ) % ) + ((i - ) % )) posY:( + * ((i - )/)) width:width height:];
}
[self createKey:@"" posX: posY:( + * ) width:(width * + ) height:];
[self createKey:@"←" posX:(width * + ) posY:( + * ) width:(width) height:];
[self createKey:@"+" posX:(width + ) * posY: width:width height:];
[self createKey:@"-" posX:(width + ) * posY:( + * ) width:(width) height:];
}
return self;
} - (void)createTopBar
{
UIView *topView = [UIView new];
[topView setBackgroundColor:[UIColor darkGrayColor]];
[self addSubview:topView];
topView.frame = CGRectMake(, , CGRectGetWidth(self.frame), ); UILabel *lbInfo = [[UILabel alloc]initWithFrame:CGRectMake(, , CGRectGetWidth(topView.frame) / * - , CGRectGetHeight(topView.frame))];
[topView addSubview:lbInfo];
[lbInfo setText:@"一些提示信息"];
[lbInfo setLineBreakMode:NSLineBreakByWordWrapping];
[lbInfo setNumberOfLines:];
[lbInfo setFont:[UIFont systemFontOfSize:]];
[lbInfo setTextColor:[UIColor whiteColor]]; UIButton *btnFinish = [[UIButton alloc]initWithFrame:CGRectMake(CGRectGetWidth(topView.frame) / * , , CGRectGetWidth(topView.frame) / , CGRectGetHeight(topView.frame))];
[topView addSubview:btnFinish];
[btnFinish setTitle:@"完成" forState:UIControlStateNormal];
[btnFinish setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btnFinish setBackgroundImage:[CommonFunc imageWithColor:[UIColor orangeColor]] forState:UIControlStateHighlighted];
[btnFinish addTarget:self action:@selector(hideKeyboard) forControlEvents:UIControlEventTouchUpInside];
} - (void)createKey:(NSString *)title posX:(float)posX posY:(float)posY width:(float)width height:(float)height
{
UIButton *btnKey = [[UIButton alloc]initWithFrame:CGRectMake(posX, posY, width, height)];
[self addSubview:btnKey];
[btnKey addTarget:self action:@selector(buttonDidClicked:) forControlEvents:UIControlEventTouchUpInside];
[btnKey setTitle:title forState:UIControlStateNormal];
[btnKey setBackgroundColor:[UIColor lightGrayColor]];
[btnKey setBackgroundImage:[CommonFunc imageWithColor:[UIColor orangeColor]] forState:UIControlStateHighlighted];
} - (void)buttonDidClicked:(UIButton*)sender
{
self.m_textField.text = sender.titleLabel.text;
} -(void)layoutSubviews{
[super layoutSubviews]; } - (void)hideKeyboard
{
//隐藏键盘
[self.m_textField endEditing:YES];
}
@end

调用的地方:

 VolumeInputKeyboardView *volumeKeyboard = [[VolumeInputKeyboardView alloc]initWithFrame:CGRectMake(, , SCREEN_WIDTH, )];

     volumeKeyboard.m_textField = self.m_textField;
//设置输入框的键盘为自定义的键盘
self.textField.inputView = volumeKeyboard;

最终实现的键盘效果如下:

iOS自定义键盘的简单实现的更多相关文章

  1. 【iOS自定义键盘及键盘切换】详解

    [iOS自定义键盘]详解 实现效果展示: 一.实现的协议方法代码 #import <UIKit/UIKit.h> //创建自定义键盘协议 @protocol XFG_KeyBoardDel ...

  2. ios 自定义键盘

    由于项目需要,需要自定义键盘.ios系统键盘会缓存键盘输入,并保存在系统目录下的文件里,并且是明文存储,存在帐号密码泄漏风险.在别人代码基础上修改了下,美化了下界面,去掉了字符输入,加了点击特效,截图 ...

  3. iOS 自定义键盘ToolBar(与键盘的弹出、收起保持一致)

    1.监听键盘改变的通知 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyBoardWillCha ...

  4. ios之键盘的自定义

    一.键盘通知 当文本View(如UITextField,UITextView,UIWebView内的输入框)进入编辑模式成为first responder时,系统会自动显示键盘.成为firstresp ...

  5. iOS 自定义emoji表情键盘

    之前走了很多弯路,包括自己定以emoji表情,自己创建view类去处理图文混排 ,当把这些焦头烂额的东西处理完了才发现 ,其实系统自带键盘是如此的方便,iOS 系统自带的表情在view,textfie ...

  6. ios自定义数字键盘

    因为项目又一个提现的功能,textfiled文本框输入需要弹出数字键盘,首先想到的就是设置textfiled的keyboardType为numberPad,此时你会看到如下的效果:   但是很遗憾这样 ...

  7. IOS开发之自定义键盘

     本文转载至 http://blog.csdn.net/majiakun1/article/details/41242069 实际开发过程中,会有自定义键盘的需求,比如,需要添加一个表情键盘.本文提供 ...

  8. IOS自定义日历控件的简单实现(附思想及过程)

    因为程序要求要插入一个日历控件,该空间的要求是从当天开始及以后的六个月内的日历,上网查资料基本上都说只要获取两个条件(当月第一天周几和本月一共有多少天)就可以实现一个简单的日历,剩下的靠自己的简单逻辑 ...

  9. iOS关闭键盘的两种简单方法

    方法一: //1     [[[UIApplication sharedApplication] keyWindow] endEditing:YES]; ,为了关闭弹出的软键盘要遍历然后调用resig ...

随机推荐

  1. 彻底搞懂snowflake算法及百度美团的最佳实践

    写在前面的话 一提到分布式ID自动生成方案,大家肯定都非常熟悉,并且立即能说出自家拿手的几种方案,确实,ID作为系统数据的重要标识,重要性不言而喻,而各种方案也是历经多代优化,请允许我用这个视角对分布 ...

  2. AJAX中同步和异步的区别和使用场景

    一.简介Ajax请求最重要的问题是代码执行的顺序.最长遇到的问题是,我们定义一个变量接收ajax异步请求的返回结果,后续代码使用,然而后续代码在使用时该变量为初始值,始终得不到想要的结果!!!二.示例 ...

  3. cocos2dx基础篇(1) Cocos2D-X项目创建

    已经入行工作半年多时间了,以前都是把这些东西记录在有道云上面的,现在抽出些时间把以前的笔记腾过来. 具体的环境配置就不用说了,因为现在已经是2018年,只需要下载对应版本解压后就能使用,不用再像多年前 ...

  4. js --- ffmpeg rtsp 推流,websocket通信,cnavas 渲染

    首先选择正确的ffmpeg包 百度搜索ffmpeg官网,点击进入下图所示. 点击download,进入下载页面,选择window,window下面只有一个builds版本,如图红线部分圈出来的 点击b ...

  5. hive排错

    找出错的那个hive实例,看错误日志: 点下面stdout,找Error

  6. Elasticsearch-索引新数据(创建索引、添加数据)

    ES-索引新数据 0.通过mapping映射新建索引 CURL -XPOST 'localhost:9200/test/index?pretty' -d '{ "mappings" ...

  7. Django框架中使用Echart进行统计的SQL语句

    最近想用Echart做数据统计的图形显示,数据来源是MySQL数据库,自然需要根据不同的搜索条件筛选出表中的数据,用比较多的就是时间的参数吧! 常用的mysql时间的条件进行检索的SQL语句: 数据表 ...

  8. Java四类八项基本数据类型

    一. 四类八项基本数据类型 1. 整数类型(byte.short.int.long) 三点注意事项: a. Java各整数类型有固定的表示范围和字段长度,其不收操作系统的影响,以保持Java的可移植性 ...

  9. vue 实践技巧合集

    前言 本文纯属个人平时实践过程中的一些经验总结,算是一点点小技巧吧,不是多么高明的技术,如果对你有帮助,那么不胜荣幸. 本文不涉及罕见API使用方法等,大部分内容都是基于对vue的一些实践而已.由于涉 ...

  10. js变量的作用域与函数作用域

    引自 1. 变量的作用域(var与let的区别) 在函数之外声明的变量,叫做全局变量,因为它可被当前文档中的任何其他代码所访问.在函数内部声明的变量,叫做局部变量,因为它只能在当前函数的内部访问. E ...