關于tableview中textfield輸入鍵盤遮擋問題

最近項目中購物車添加了商品數量的編輯功能,so問題來了,若我們編輯的商品cell位于tableview上方,那一切ok,但是如果是底部的cell呢,到github上一通找,的確有大牛開源了三方->https://github.com/hackiftekhar/IQKeyboardManager。但是明顯大材小用了,下面談一談自己的處理

-(BOOL)textFieldShouldBeginEditing:(UITextField*)textField {

//textfield的tag關聯(lián)的是cell的section和row

? ? NSInteger ?section = textField.tag/1000;

? ? NSInteger ?row = textField.tag%1000;

//取出編輯的cell

? ? NSIndexPath *index = [NSIndexPath indexPathForRow:row inSection:section];

? ? UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:index];

//將cell的坐標轉化到window上,也可以轉換到view上這個隨意

? ? UIWindow*win = [UIApplication sharedApplication].keyWindow;

? ? CGRect rect = [win convertRect:CGRectMake(0,0, cell.frame.size.width, cell.frame.size.height)fromView:cell];

? ?DebugLog(@"-----------%f",rect.origin.y);

//算偏移量,216是鍵盤高度,50是tab高度,嚴謹一點可以加鍵盤監(jiān)聽獲取高度

? ?CGFloatoffset =APP_H-216-50- rect.origin.y- rect.size.height;

? ?DebugLog(@"-_______--%f",offset);

? if(offset <=0) {

? ? ?[UIView animateWithDuration:0.3animations:^{

? ? ?CGRect frame =self.view.frame;

? ? ?DebugLog(@"-----________-----%f",frame.origin.y);

? ? ?frame.origin.y+= offset;

? ? ?self.view.frame= frame; ?

?}];

}

return yes;}

編輯結束后在shouldend里面將view還原。

還有一種實現是拿出cell,通過tableview scrolltoindexpath這個方法講cell可見,但是在textfield resignFirstResponder之后沒法回滾,需重新做動畫實現。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 前言 最近忙完項目比較閑,想寫一篇博客來分享一些自學iOS的心得體會,希望對迷茫的你有所幫助。博主非科班出身,一些...
    GitHubPorter閱讀 1,600評論 9 5
  • 1.badgeVaule氣泡提示 2.git終端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夾內容...
    i得深刻方得S閱讀 4,987評論 1 9
  • iphone開發(fā)筆記 退回輸入鍵盤 - (BOOL) textFieldShouldReturn:(id)text...
    愛易寒曲易散閱讀 691評論 0 1
  • 一位同事的爺爺前兩天過世了。平日關系較好,我知道他們家是很難得的傳統(tǒng)家庭,自出生到現在將近而立之年,三代五口人一直...
    疏歸閱讀 266評論 0 0
  • 思念你不遠 若隱若現 我閉上雙眼 春風拂面 所有的期盼 向往彼岸 不會擱淺 對你的思念 最美的瞬間 片刻閃現 春天...
    文山鹿閱讀 550評論 81 42

友情鏈接更多精彩內容