iOS开发笔记(1) -- 利用弹出键盘时使视图跟随键盘上移

这篇博客介绍了在iOS开发中如何利用键盘事件监听,自定义UIView并在键盘弹出时调整其位置,确保视图下边界与键盘上边界对齐。通过在自定义视图中集成UITextField或UITextView,并调用becomeFirstResponder方法弹出键盘。博主分享了初步实现的代码,并表示将不断完善和更新博客内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路就是自己写写一个UIView,然后监听键盘的事件,得到键盘的位置后调整自己写的view的位置,保证这个view的下边界与键盘的上边界相接。在自定义view中包含一个UITextField或者UITextView。通过代码调用其becomeFirstResponder(第一响应者)方法来弹出键盘。通过相应函数改变UIView的位置.

//设置监听事件

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChange:) name:UIKeyboardWillChangeFrameNotification object:nil];

//键盘发生改变执行

- (void)keyboardWillChange:(NSNotification *)note
{
    NSDictionary *userInfo = note.userInfo;
    CGFloat duration = [userInfo[@"UIKeyboardAnimationDurationUserInfoKey"] doubleValue];

    CGRect keyFrame = [userInfo[@"UIKeyboardFrameEndUserInfoKey"] CGRectValue];
    CGFloat moveY = keyFrame.origin.y - self.view.frame.size.height-64;//这个64是我减去的navigationbar加上状态栏20的高度,可以看自己的实际情况决定是否减去;

    [UIView animateWithDuration:duration animations:^{
        self.view.transform = CGAffineTransformMakeTranslation(0, moveY);
    }];

}

还有不足,仅供大家参考;第一次写博客,之后会随时更新一些自己用得到的和大家分享;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值