怎么使iOS中的鍵盤適應(yīng)高度變化
怎么使iOS中的鍵盤適應(yīng)高度變化
在ios開發(fā)時我們會遇到鍵盤高度無法適應(yīng)的問題,這時候該怎么解決呢?下面由學(xué)習(xí)啦小編教大家怎么解決iOS中的鍵盤高度變化的問題。
完美解決iOS中的鍵盤適應(yīng)高度變化的方法
#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;
}];
}
通過獲取鍵盤消息的開始狀態(tài)、結(jié)束狀態(tài),以及變化周期,可以計算出具體的Y偏移,從而在相同時間里做相同偏移量。
猜你喜歡: