自定义键盘类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. runoob_Java 序列化

    Java 序列化 Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据.有关对象的类型的信息和存储在对象中数据的类型. 将序列化对象写入文件之后 ...

  2. 查询处理Oracle锁表的问题

    --以下几个为相关表SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$proce ...

  3. IK分词器的安装与使用IK分词器创建索引

    之前我们创建索引,查询数据,都是使用的默认的分词器,分词效果不太理想,会把text的字段分成一个一个汉字,然后搜索的时候也会把搜索的句子进行分词,所以这里就需要更加智能的分词器IK分词器了. 1. i ...

  4. 爬虫七之分析Ajax请求并爬取今日头条

    爬取今日头条图片 这里只讨论出现的一些问题,代码在最下面github链接里. 首先,今日头条取消了"图集"这一选项,因此对于爬虫来说效率降低了很多: 在所有代码都完成后,也许是爬取 ...

  5. mac 简洁安装Kafka

    Mac 简洁安装Kafka 1.采用homebrew的方式 终端执行命令:brew install kafka 2.修改Kafka服务配置文件server.properties 执行命令: vi /u ...

  6. springcloud用法

    springcloud用法 使用springcloud搭建微服务肯定要在父工程下面编写子工程 一.搭建eureka注册中心 1.    创建maven项目(在springboot项目下建立子工程eur ...

  7. AT2292 Division into Two

    题目 不妨认为\(A>B\). 首先判一下无解. 设\(f_i\)表示\(A\)集合最后选第\(i\)个数的方案数. 转移的话枚举一下从哪个\(j\)转移过来. 显然\(j\)需要满足以下条件: ...

  8. pyrhon 开始 基础类型

    https://repl.it/languages/python  线上编辑器 字符串不支持  减法 除法

  9. 中值滤波器(平滑空间滤波器)基本原理及Python实现

    1. 基本原理 一种典型的非线性滤波器就是中值滤波器,它使用像素的一个领域内的灰度的中值来代替该像素的值.中值滤波器通常是处理椒盐噪声的一种有效的手段. 2. 测试结果 图源自skimage 3. 代 ...

  10. 一个php文件就可以把数据库的数据导出Excel表格

    数据库内容太多,复制粘贴太麻烦?那就用代码实现把,把代码写好了,导出还不容易吗,访问即可导出. excel.php <?php error_reporting(E_ALL ^ E_DEPRECA ...