🌺自定义键盘上方工具栏🌺
2018-10-02 本文已影响0人
JaneEyre3X
上面的按钮直接给上点击方式就可以了,如有不懂可以交流讨论QQ号:1466534942 时过境迁
#import "ViewController.h"
@interface ViewController ()
{
UIView * _toolView; //工具栏
UITextField *textField;// 输入框 呼出键
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
textField = [[UITextField alloc]initWithFrame:CGRectMake(100, 150, 120, 70)];
textField.placeholder = @"测试";
textField.keyboardType = UIKeyboardTypeNumberPad;
textField.backgroundColor =[UIColor redColor];
[self.view addSubview:textField];
//增加监听,当键盘出现或改变时收出消息
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:)name:UIKeyboardWillShowNotification object:nil];
//增加监听,当键退出时收出消息
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification object:nil];
//初始化工具栏
_toolView = [[UIView alloc]init];
_toolView.backgroundColor =[UIColor grayColor];
_toolView.frame = CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, 50);
[self.view addSubview:_toolView];
UIButton *losebtn = [UIButton buttonWithType:UIButtonTypeCustom];
losebtn.frame = CGRectMake(50, 0, 100, 50);
[losebtn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];
[losebtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[losebtn setTitle:@"+86 China" forState:UIControlStateNormal];
[_toolView addSubview:losebtn];
UIButton *imageBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[imageBtn setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
imageBtn.frame = CGRectMake(self.view.frame.size.width-100, 0, 50, 50);
[imageBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[imageBtn addTarget:self action:@selector(imageBtnClick) forControlEvents:UIControlEventTouchUpInside];
[_toolView addSubview:imageBtn];
UIButton *cameraBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[cameraBtn setTitle:@"相机" forState:UIControlStateNormal];
cameraBtn.frame = CGRectMake(self.view.frame.size.width-50, 0, 50, 50);
[cameraBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[cameraBtn addTarget:self action:@selector(cameraBtnClick) forControlEvents:UIControlEventTouchUpInside];
[_toolView addSubview:cameraBtn];
UIButton *canclebtn = [UIButton buttonWithType:UIButtonTypeCustom];
[canclebtn setTitle:@"取消" forState:UIControlStateNormal];
canclebtn.frame = CGRectMake(self.view.frame.size.width-150, 0, 50, 50);
[canclebtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[canclebtn addTarget:self action:@selector(canclebtnBtnClick) forControlEvents:UIControlEventTouchUpInside];
[_toolView addSubview:canclebtn];
}
#pragma mark 当键盘出现或改变时调用
- (void)keyboardWillShow:(NSNotification *)aNotification
{
//键盘弹出时显示工具栏
//获取键盘的高度
NSDictionary *userInfo = [aNotification userInfo];
NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRect keyboardRect = [aValue CGRectValue];
float keyBoardHeight = keyboardRect.size.height;
// NSLog(@"%ld",(long)keyBoardHeight);
[UIView animateWithDuration:0.1 animations:^{
_toolView.frame = CGRectMake(0, 400, self.view.frame.size.width, 50);
}];
}
#pragma mark 当键退出时调用
- (void)keyboardWillHide:(NSNotification *)aNotification
{
//键盘消失时 隐藏工具栏
[UIView animateWithDuration:0.1 animations:^{
_toolView.frame = CGRectMake(0, self.view.frame.size.height+10, 100, 50);
}];
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[textField resignFirstResponder];
}
@end
自定义键盘.gif