iOS 键盘弹出视图精准上移

1 视图精准位移,需要计算出输入框距离屏幕底部的距离,然后

计算出输入框需要上移的距离,就是整个视图需要上移的距离,

注意,我们可以自行设置一个适当的buffer,我这里是40,就是输入框距离

键盘有一个40的距离,避免紧挨着 导致体验不佳

复制代码
- (void)keyboardWillShow:(NSNotification *)noti
{
    UpdateUserInfoView  *userInforView = self.editCell.userInfoView;
    
    CGRect userInfoViewframe = [self.editCell convertRect:userInforView.frame toView:window];
    CGFloat bottomSpace = GetScreenHeight()  - CGRectGetMaxY(userInfoViewframe);
    //设置一个buffer
    bottomSpace -= 40;
    CGRect keyboardRect = [noti.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
    CGFloat boardHeight = keyboardRect.size.height;
    NSLog(@" keyboardWillShow editCellFrame%@ bottomSpace%f boardHeight%f", NSStringFromCGRect(userInfoViewframe), bottomSpace, boardHeight);

    CGFloat duration = [noti.userInfo[UIKeyboardAnimationDurationUserInfoKey] floatValue];
    Weakify(self);
    [UIView animateWithDuration:duration animations:^{
        Strongify(self);
        self.backView.y -= (boardHeight - bottomSpace);
    }];
    [self.tableView addGestureRecognizer:self.endEditingTap];
}
相关推荐
悟空瞎说6 小时前
NSNotificationCenter(NotificationCenter)官方文档白话翻译 + API 详解 + Swift 实战
ios
空の鱼10 小时前
Mac 上 Node 版本管理(brew + nvm 共存方案)
macos·node.js
末代iOS程序员华仔13 小时前
iOS个人开发者账号申请为啥会被卡住
ios·swift·figma
你疯了抱抱我14 小时前
【MacOS】自己开发的APP,dock图标圆角 + 调整大小(py2app 版)
macos
MaoJiu14 小时前
从纹理采样到局部形变:实时瘦鼻 Shader 算法解析
ios
奈斯先生Vector16 小时前
从“能调用”到“可替换”:Coze 多模型 API 编排层设计指南
linux·运维·人工智能·ubuntu·平面·ios
k4m7v2pz16 小时前
Apple Silicon Mac 上用 Wine 跑《重武器老鼠》:从下载到进游戏全流程
macos·wine·老游戏·rosetta 2·mighty rodent·腾讯软件中心
DogDaoDao16 小时前
HarmonyOS 深度解析:从微内核到 ArkTS 工程实战
android·linux·ios·华为·程序员·harmonyos·harmonyos next
Patrick_Wilson1 天前
iOS Safari Clipboard API 权限弹窗问题
前端·ios·safari
chunmiao30321 天前
苹果首款2nm芯片M6与M5 Ultra发布,Mac本地跑大模型进入新阶段
macos