一丶鍵盤(pán)問(wèn)題
1.解決鍵盤(pán)彈起,擋住文本框的問(wèn)題;
二丶解決方案:
① 簡(jiǎn)易處理
第三方,一句話搞定;
其他博客詳細(xì)介紹:
http://www.itdecent.cn/p/9d7d246bd350/comments/1518291
使用:
#import <IQKeyboardManager.h>
② 自定義化處理
采用NSNotification
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
//監(jiān)聽(tīng)鍵盤(pán)改變
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(KeyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil];
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
//取消監(jiān)聽(tīng)
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillChangeFrameNotification object:nil];
}
#pragma mark - notification
- (void)KeyboardWillChangeFrame:(NSNotification *)notification
{
NSDictionary *info = [notification userInfo];
CGRect endKeyboardRect = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGRect tmpViewRect = self.view.frame;
if (endKeyboardRect.origin.y == [UIScreen height])
{
//下降
tmpViewRect.origin.y = 0;
}
else
{
//上升
CGFloat maxY = CGRectGetMaxY(self.backView.frame);
CGFloat spaceH = [UIScreen height] - maxY;
CGFloat keyboardH = endKeyboardRect.size.height;
if (spaceH < keyboardH) {
tmpViewRect.origin.y = - (keyboardH - spaceH);
}
}
self.view.frame = tmpViewRect;
}
三丶注意事項(xiàng)
1.添加監(jiān)聽(tīng)者,和取消監(jiān)聽(tīng)者寫(xiě)的位置在生命周期上是相對(duì)的;
2.別忘記取消監(jiān)聽(tīng);