首页 > 网站 > 建站经验 > 正文

如-何完美适应iOS中的键盘高度变化

2019-11-02 14:43:26
字体:
来源:转载
供稿:网友

 #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:UIKeyboardAnimationDuration
兔兔电影网[www.aikan.tv/special/tutudianyingwang/]
UserInfoKey] 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偏移,从而在相同时间里做相同偏移量。 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表