关闭

iOS - 设置底部输入框随键盘的移动而移动

2121人阅读 评论(0) 收藏 举报
分类:

xib:一个tableview和一个view ,并设置一些约束,输入框的底部紧贴着整个view的底部


下边的输入框需要设置为随键盘的移动而移动


一 .将底部约束拖到对应的.m文件中



二 .在适当的位置(如:viewDidLoad)注册通知

// 注册通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil];
三 .并加入以下代码:
- (void)keyboardWillChangeFrame:(NSNotification *)note
{
    // 键盘显示\隐藏完毕的frame
    CGRect frame = [note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
    // 修改底部约束
    self.bottomSpace.constant = [UIScreen mainScreen].bounds.size.height - frame.origin.y; // 屏幕的高度 - 键盘的Y值
    // 动画时间
    CGFloat duration = [note.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
    // 动画
    [UIView animateWithDuration:duration animations:^{
        [self.view layoutIfNeeded]; // 自动布局的view改变约束后,需要强制布局
    }];
}

- (void)dealloc
{
    // 移除通知
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

现在,底部输入框就会随键盘的移动而移动了


设置当tableView拖拽时退出键盘

一 .设置tableView的delegate为对应的控制器



二 .遵守协议:

@interface LXFCommentViewController () <UITableViewDelegate>
三 .实现代码方法:

#pragma mark - <UITableViewDelegate>
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    [self.view endEditing:YES];
}





0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:107998次
    • 积分:2281
    • 等级:
    • 排名:第17484名
    • 原创:118篇
    • 转载:43篇
    • 译文:0篇
    • 评论:10条
    文章分类
    最新评论