最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS鍵盤彈出遮擋輸入框的解決方法

 更新時間:2021年01月27日 14:15:22   作者:cungudafa  
這篇文章主要為大家詳細介紹了iOS鍵盤彈出遮擋輸入框的解決方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文為大家分享了iOS鍵盤彈出遮擋輸入框的解決方法,供大家參考,具體內(nèi)容如下

問題:輸入框被鍵盤遮擋

期望效果:輸入框位于鍵盤上方

解決思路:

監(jiān)聽鍵盤出現(xiàn)和消失的狀態(tài),當鍵盤出現(xiàn)時,當前視圖上移,當輸入完成收起鍵盤時,視圖回到初始狀態(tài)。

難點:視圖向上平移的距離

原理都差不多,oc版參考代碼:

self.phoneInput = [UITextField new];
  self.phoneInput.placeholder = @"請輸入...";
  [self.view addSubview:self.phoneInput];


///鍵盤彈出 處理遮擋問題
- (void)viewWillAppear:(BOOL)animated
{
  [super viewWillAppear:animated];
  
  [[NSNotificationCenter defaultCenter] addObserver:self
                       selector:@selector(keyboardWillShow:)
                         name:UIKeyboardWillShowNotification
                        object:nil];
  [[NSNotificationCenter defaultCenter] addObserver:self
                       selector:@selector(keyboardWillHide:)
                         name:UIKeyboardWillHideNotification
                        object:nil];
}
- (void)keyboardWillShow:(NSNotification *)notification
{
 //獲取處于焦點中的view
 NSArray *textFields = @[self.phoneInput];
 UIView *focusView = nil;
 for (UITextField *view in textFields) {
  if ([view isFirstResponder]) {
   focusView = view;
   break;
  }
 }
 if (focusView) {
   //獲取鍵盤彈出的時間
   double duration = [notification.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
   //獲取鍵盤上端Y坐標
   CGFloat keyboardY = [notification.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue].origin.y;
   //獲取輸入框下端相對于window的Y坐標
   CGRect rect = [focusView convertRect:focusView.bounds toView:[[[UIApplication sharedApplication] delegate] window]];
   CGPoint tmp = rect.origin;
   CGFloat inputBoxY = tmp.y + focusView.frame.size.height;
   //計算二者差值
   CGFloat ty = keyboardY- inputBoxY;
   NSLog(@"position keyboard: %f, inputbox: %f, ty: %f", keyboardY, inputBoxY, ty);
   //差值小于0,做平移變換
   [UIView animateWithDuration:duration animations:^{
    if (ty < 0) {
     self.view.transform = CGAffineTransformMakeTranslation(0, ty);
    }
   }];
  }
}

- (void)keyboardWillHide:(NSNotification *)notification
{
 //獲取鍵盤彈出的時間
 double duration = [notification.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
 //還原
 [UIView animateWithDuration:duration animations:^{
   self.view.transform = CGAffineTransformMakeTranslation(0, 0);
 }];
}
///<UITextFieldDelegate>
///UITextFieldDelegate編輯完成,視圖恢復原狀
-(void)textFieldDidEndEditing:(UITextField *)textField
{
   self.view.frame =CGRectMake(0, 0, [[UIScreen mainScreen] bounds].size.width,[[UIScreen mainScreen] bounds].size.height);
}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • iOS中的表單按鈕選項UIActionSheet常用方法整理

    iOS中的表單按鈕選項UIActionSheet常用方法整理

    UIActionSheet經(jīng)常被用來制作各種彈出的選項,這里我們就來看一下iOS中的表單按鈕選項UIActionSheet常用方法整理,需要的朋友可以參考下
    2016-06-06
  • iOS開發(fā)UI之弧形文字

    iOS開發(fā)UI之弧形文字

    這篇文章主要為大家詳細介紹了iOS開發(fā)UI之弧形文字,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • iOS獲取本地音頻文件(屬性/信息)

    iOS獲取本地音頻文件(屬性/信息)

    這篇文章主要為大家詳細介紹了iOS獲取本地音頻文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • iOS 漢字的拼音

    iOS 漢字的拼音

    本文通過一段代碼給代碼介紹了ios漢字的拼音知識及將漢字轉(zhuǎn)拼音的代碼,非常不錯,具有參考借鑒價值,感興趣的朋友一起看下吧
    2016-08-08
  • IOS 波紋進度(waveProgress)動畫實現(xiàn)

    IOS 波紋進度(waveProgress)動畫實現(xiàn)

    這篇文章主要介紹了IOS 紋進度(waveProgress)動畫實現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • iOS開發(fā)中runtime常用的幾種方法示例總結(jié)

    iOS開發(fā)中runtime常用的幾種方法示例總結(jié)

    Runtime也就是所謂的“運行時”,因為是在運行時實現(xiàn)的。下面這篇文章主要給大家介紹了關(guān)于iOS開發(fā)中runtime常用的幾種方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-08-08
  • iOS手動添加新字體的步驟和踩坑記錄

    iOS手動添加新字體的步驟和踩坑記錄

    有時候為了界面的美觀,可能需要添加第三方的字體庫,那該如何實現(xiàn)呢?這篇文章主要給大家介紹了關(guān)于iOS手動添加新字體的步驟和踩坑的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • iOS屏幕旋轉(zhuǎn)與鎖屏的示例代碼

    iOS屏幕旋轉(zhuǎn)與鎖屏的示例代碼

    這篇文章主要介紹了iOS屏幕旋轉(zhuǎn)與鎖屏的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Ios蘋果app應用程序開發(fā)者如何獲取IPA簽名證書詳解

    Ios蘋果app應用程序開發(fā)者如何獲取IPA簽名證書詳解

    這篇文章主要為大家介紹了Ios蘋果app應用程序開發(fā)者如何獲取IPA簽名證書詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • 推薦一個非常棒的Titanium MVC框架

    推薦一個非常棒的Titanium MVC框架

    ChariTi是一個非常不錯的Titanium MVC框架。此框架的特點是很多東西可直接通過配置文件實現(xiàn),如APP的主題顏色,每個tab的內(nèi)容,是否使用滑動菜單布局,是否支持tablet布局等,而且其對iOS 和 android也有很好的支持,同時也支持橫屏和豎屏的轉(zhuǎn)換然后使用不同的布局。
    2014-07-07

最新評論

灵山县| 永春县| 石景山区| 交城县| 浪卡子县| 抚顺市| 赣榆县| 义马市| 登封市| 长垣县| 商都县| 博野县| 修文县| 弥勒县| 通河县| 乌苏市| 宁阳县| 苗栗县| 铁岭县| 定州市| 蓬安县| 稻城县| 保靖县| 香河县| 都兰县| 毕节市| 台前县| 永和县| 蒙城县| 紫阳县| 光山县| 册亨县| 祥云县| 宜春市| 衡阳县| 宾阳县| 南宫市| 哈巴河县| 盖州市| 徐水县| 民权县|