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

iOS鍵盤(pán)彈出遮擋輸入框的解決方法

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

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

問(wèn)題:輸入框被鍵盤(pán)遮擋

期望效果:輸入框位于鍵盤(pán)上方

解決思路:

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

難點(diǎn):視圖向上平移的距離

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

self.phoneInput = [UITextField new];
  self.phoneInput.placeholder = @"請(qǐng)輸入...";
  [self.view addSubview:self.phoneInput];


///鍵盤(pán)彈出 處理遮擋問(wèn)題
- (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
{
 //獲取處于焦點(diǎn)中的view
 NSArray *textFields = @[self.phoneInput];
 UIView *focusView = nil;
 for (UITextField *view in textFields) {
  if ([view isFirstResponder]) {
   focusView = view;
   break;
  }
 }
 if (focusView) {
   //獲取鍵盤(pán)彈出的時(shí)間
   double duration = [notification.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
   //獲取鍵盤(pán)上端Y坐標(biāo)
   CGFloat keyboardY = [notification.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue].origin.y;
   //獲取輸入框下端相對(duì)于window的Y坐標(biāo)
   CGRect rect = [focusView convertRect:focusView.bounds toView:[[[UIApplication sharedApplication] delegate] window]];
   CGPoint tmp = rect.origin;
   CGFloat inputBoxY = tmp.y + focusView.frame.size.height;
   //計(jì)算二者差值
   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
{
 //獲取鍵盤(pán)彈出的時(shí)間
 double duration = [notification.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
 //還原
 [UIView animateWithDuration:duration animations:^{
   self.view.transform = CGAffineTransformMakeTranslation(0, 0);
 }];
}
///<UITextFieldDelegate>
///UITextFieldDelegate編輯完成,視圖恢復(fù)原狀
-(void)textFieldDidEndEditing:(UITextField *)textField
{
   self.view.frame =CGRectMake(0, 0, [[UIScreen mainScreen] bounds].size.width,[[UIScreen mainScreen] bounds].size.height);
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • iOS中的表單按鈕選項(xiàng)UIActionSheet常用方法整理

    iOS中的表單按鈕選項(xiàng)UIActionSheet常用方法整理

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

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

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

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

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

    iOS 漢字的拼音

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

    IOS 波紋進(jìn)度(waveProgress)動(dòng)畫(huà)實(shí)現(xiàn)

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

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

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

    iOS手動(dòng)添加新字體的步驟和踩坑記錄

    有時(shí)候?yàn)榱私缑娴拿烙^,可能需要添加第三方的字體庫(kù),那該如何實(shí)現(xiàn)呢?這篇文章主要給大家介紹了關(guān)于iOS手動(dòng)添加新字體的步驟和踩坑的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • iOS屏幕旋轉(zhuǎn)與鎖屏的示例代碼

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

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

    Ios蘋(píng)果app應(yīng)用程序開(kāi)發(fā)者如何獲取IPA簽名證書(shū)詳解

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

    推薦一個(gè)非常棒的Titanium MVC框架

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

最新評(píng)論

彭水| 古浪县| 雅江县| 汕尾市| 大足县| 甘泉县| 射阳县| 额济纳旗| 咸丰县| 江孜县| 台北市| 得荣县| 桂阳县| 大洼县| 手游| 新化县| 赣州市| 怀远县| 基隆市| 汉川市| 杭锦旗| 镇雄县| 田阳县| 舒兰市| 伊吾县| 江油市| 孝义市| 贵港市| 花莲市| 江津市| 斗六市| 丘北县| 莱西市| 图木舒克市| 望城县| 米林县| 任丘市| 榕江县| 陈巴尔虎旗| 马公市| 张北县|