标题 | 如何完美适应iOS中的键盘高度变化 |
内容 | #pragma mark - reg & unreg notification - (void)regNotification { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil]; } - (void)unregNotification { [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillChangeFrameNotification object:nil]; } #pragma mark - notification handler - (void)keyboardWillChangeFrame:(NSNotification *)notification { NSDictionary *info = [notification userInfo]; CGFloat duration = [[info objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue]; CGRect beginKeyboardRect = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue]; CGRect endKeyboardRect = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; CGFloat yOffset = endKeyboardRect.origin.y - beginKeyboardRect.origin.y; CGRect inputFieldRect = self.inputTextField.frame; CGRect moreBtnRect = self.moreInputTypeBtn.frame; inputFieldRect.origin.y += yOffset; moreBtnRect.origin.y += yOffset; [UIView animateWithDuration:duration animations:^{ self.inputTextField.frame = inputFieldRect; self.moreInputTypeBtn.frame = moreBtnRect; }]; } 通过获取键盘消息的开始状态、结束状态,以及变化周期,可以计算出具体的Y偏移,从而在相同时间里做相同偏移量。 |
随便看 |
|
在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。