iOS开发监听键盘(添加键盘和隐藏键盘,改变视图中整体控件随着键盘的高度移动)

本文介绍了一个iOS应用中处理键盘弹出和隐藏时视图自动调整的方法。通过在viewWillAppear方法中添加键盘显示和隐藏的通知,确保了键盘出现时UI元素的位置调整,并在键盘消失时恢复原位。

1,在页面中添加一些控件,必须要有UITextFiled,如图
红色框是UiTextFiled,当点击开始输入时整体页面会向上移动

// 在viewWillAppear方法中添加两个通知,显示键盘和收起键盘
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    //添加键盘 TextField 监听
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardWillShow:)
                                                 name:UIKeyboardWillShowNotification
                                               object:nil];

    // 隐藏键盘监听
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardWillHide:)
                                                 name:UIKeyboardWillHideNotification
                                               object:nil];

}

// 显示键盘
弹出键盘郑哥页面有整体上移

- (void)keyboardWillShow :(NSNotification *)note
{
//completeBtn为图中的"完成"按钮,当开始输入时完成按钮离键盘的高度为20以上
    CGFloat height= MAINHEIGHT-_completeBtn.frame.origin.y-_completeBtn.frame.size.height;
    CGRect rect = [note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
    //保证键盘跟确认按钮之间间隔为20以上,当间隔小于20的时候向上偏移
    if (height-rect.size.height<20) {
        CGFloat ty=height-rect.size.height-20;
        [UIView animateWithDuration:[note.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue] animations:^{
            self.view.transform = CGAffineTransformMakeTranslation(0, ty);

        }];

    }

}
// 收键盘
- (void)keyboardWillHide :(NSNotification *)note
{
    [UIView animateWithDuration:[note.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue] animations:^{
        self.view.transform = CGAffineTransformMakeTranslation(0, 0);
    }];
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值