国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

處理UIScrollView中的編輯框被彈出鍵盤遮擋的問題

2019-11-14 19:43:15
字體:
來源:轉載
供稿:網友

當UIScrollView中的某一行存在編輯框時,點擊編輯框,彈出的鍵盤有可能遮擋住編輯框,造成體驗效果很不好。解決的方法很簡單,就是將UIScrollView的內容和UIScrollView容器的內邊距(準確來說是底邊距)增加正好是鍵盤高度的距離,ios系統會將選中的行重新定位,位置正好是距離窗口底邊相同距離的地方,當然,鍵盤縮回去的時候注意要把內邊距再設置回來。涉及到的最主要的函數就是UIScrollView的setContentInset函數。

首先,要在程序開始的地方注冊鍵盤彈出和縮回的通知監聽:[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];

 

keyboardWillShow和keyboardWillHide的實現如下:

- (void)keyboardWillShow:(NSNotification *)notification
{

  //鍵盤彈出后的frame
    NSValue *keyboardBoundsValue = [[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey];
    CGRect keyboardBounds;
    [keyboardBoundsValue getValue:&keyboardBounds];

    //設置新的內邊距,這個內邊距是UIScrollView的最后一行距離UIScrollView底邊框的距離,

  //這樣當該函數觸發式,系統會將當前選中行距離窗口底邊的距離設為該值,從而正好不被鍵盤遮蓋住。
    UIEdgeInsets e = UIEdgeInsetsMake(0, 0, keyboardBounds.size.height, 0);
    [[self tableView] setContentInset:e];

 

  //調整滑動條距離窗口底邊的距離

    [[self tableView] setScrollIndicatorInsets:e];
}

- (void)keyboardWillHide:(NSNotification *)notification
{

 //鍵盤縮回后,恢復正常設置
    UIEdgeInsets e = UIEdgeInsetsMake(0, 0, 0, 0);
    [[self tableView] setScrollIndicatorInsets:e];
    [[self tableView] setContentInset:e];
}

效果圖如下:

彈出前:

彈出后:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乐业县| 汉源县| 衢州市| 辉县市| 固始县| 韶山市| 永安市| 富顺县| 平乡县| 鄄城县| 玉林市| 和硕县| 额济纳旗| 井陉县| 桃源县| 杭锦后旗| 双辽市| 海盐县| 通化市| 马尔康县| 措勤县| 永善县| 宿松县| 加查县| 屏南县| 建德市| 丰县| 萨嘎县| 霸州市| 宁国市| 涟源市| 鄂伦春自治旗| 通海县| 苏尼特左旗| 闽清县| 措勤县| 呼图壁县| 营山县| 衢州市| 鸡西市| 津市市|