美文网首页
🌺自定义键盘上方工具栏🌺

🌺自定义键盘上方工具栏🌺

作者: JaneEyre3X | 来源:发表于2018-10-02 23:44 被阅读0次

    上面的按钮直接给上点击方式就可以了,如有不懂可以交流讨论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

    相关文章

      网友评论

          本文标题:🌺自定义键盘上方工具栏🌺

          本文链接:https://www.haomeiwen.com/subject/sptzoftx.html