這篇文章主要介紹了iOS如何實現(xiàn)防鍵盤遮擋,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比溧陽網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式溧陽網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋溧陽地區(qū)。費(fèi)用合理售后完善,十年實體公司更值得信賴。
當(dāng)我們在UITextField輸入數(shù)據(jù)時經(jīng)常彈出鍵盤遮擋界面,解決方法是:在彈出鍵盤時將整個UIVIew向上移動,在鍵盤消失時,UIVIew還原。
實例代碼如下:
@interface ViewController ()@property(nonatomic,strong)UITextField* tf; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.tf = [[UITextField alloc]initWithFrame:CGRectMake(10, 600, 100, 20)]; self.tf.delegate = self; self.tf.backgroundColor = [UIColor blackColor]; [self.view addSubview:self.tf]; } #pragma mark life Circle -(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; //后臺切換到前臺通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillEnterForeground)name:UIApplicationWillEnterForegroundNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; [self.view endEditing:YES]; } - (void)applicationWillEnterForeground{ [self.view endEditing:YES]; } -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{ [self.view endEditing:YES]; } #pragma mark UITextFieldDelegate -(void)textFieldDidBeginEditing:(UITextField *)textField{ //第一個cell不往上彈輸入框的位置 // if(indexPath.row!=0){ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChange:) name:UIKeyboardWillChangeFrameNotification object:nil]; // } } -(void)textFieldDidEndEditing:(UITextField *)textField{ } #pragma mark 鍵盤操作 - (void)keyboardWillChange:(NSNotification *)note { NSDictionary *userInfo = note.userInfo; CGFloat duration = [userInfo[@"UIKeyboardAnimationDurationUserInfoKey"] doubleValue]; CGRect keyFrame = [userInfo[@"UIKeyboardFrameEndUserInfoKey"] CGRectValue]; //這個64是我減去的navigationbar加上狀態(tài)欄20的高度,可以看自己的實際情況決定是否減去; CGFloat moveY = keyFrame.origin.y -self.tf.frame.origin.y-self.tf.frame.size.height; NSLog(@"%f",moveY); [UIView animateWithDuration:duration animations:^{ self.view.transform = CGAffineTransformMakeTranslation(0, moveY); }]; } - (void)keyboardWillHide:(NSNotification *)nsnotification { [[NSNotificationCenter defaultCenter]removeObserver:self name:UIKeyboardWillChangeFrameNotification object:nil]; [UIView animateWithDuration:0.2 animations:^{ self.view.transform = CGAffineTransformMakeTranslation(0, 0); }]; } @end
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“iOS如何實現(xiàn)防鍵盤遮擋”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!