首页 > 代码库 > 根据键盘的弹出隐藏自动调整View的位置
根据键盘的弹出隐藏自动调整View的位置
1.首先注册系统通知
//监听键盘通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrameNotification:) name:UIKeyboardWillChangeFrameNotification object:nil];
2.键盘将要改变时的相应处理
-(void)keyboardWillChangeFrameNotification:(NSNotification *)note{ //取出键盘动画的时间(根据userInfo的key----UIKeyboardAnimationDurationUserInfoKey) CGFloat duration = [note.userInfo[UIKeyboardAnimationDurationUserInfoKey] floatValue]; //取得键盘最后的frame(根据userInfo的key----UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 227}, {320, 253}}";) CGRect keyboardFrame = [note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue]; //计算控制器的view需要平移的距离 CGFloat transformY = keyboardFrame.origin.y - self.view.frame.size.height; //执行动画 [UIView animateWithDuration:duration animations:^{ //平移 self.view.transform = CGAffineTransformMakeTranslation(0, transformY); }]; }
3.这样其实还没完(存在内存隐患)还需要重写dealloc方法
-(void)dealloc{
//使用通知中心后必须重写dealloc方法,进行释放(ARC)(非ARC还需要写上[super dealloc];)
//removeObserver和 addObserver相对应.
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
根据键盘的弹出隐藏自动调整View的位置
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。