iOS 解决tableview上添加textfield键盘遮挡问题

CGRect rect = [cell convertRect:cell.frame toView:self.view];

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

{

UITableViewCell * cell=(UITableViewCell *)[[textField  superview]
superview];

NSIndexPath *indexPath=[self.tableView indexPathForCell:cell];

if (indexPath.section==0) {

}else {

[UIView beginAnimations:@"ResizeForKeyBoard" context:nil];

//========核心代码===========

//获取当前tableview的contensize.heght  加上 键盘高度 +
键盘的tabbar高度 = 260 刚刚好

self.tableView.contentSize = CGSizeMake(0,
self.tableView.contentSize.height + 260);

}

return YES;

}

//收键盘

-(BOOL)textFieldShouldReturn:(UITextField *)textField

{

[textField resignFirstResponder];

return YES;

}

NSNotificationCenter *center = [NSNotificationCenter
defaultCenter];

// 注册监听:

[center addObserver:self selector:@selector(keyBoardWillHide:)
name:UIKeyboardWillHideNotification object:nil];

- (void)keyBoardWillHide:(NSNotification *)noti

{

//    NSLog(@"键盘收起");

self.tableView.contentSize = CGSizeMake(0,
self.tableView.contentSize.height - 260);

self.view.frame = self.view.bounds;

}

}

- (void)keyBoardWillShow:(NSNotification *)noti

//

{

NSLog(@"键盘弹出");

NSLog(@"%@", noti.userInfo);

CGRect keyFrame = [noti.userInfo[@"UIKeyboardFrameEndUserInfoKey"]
CGRectValue];

CGFloat keyHeight = keyFrame.size.height; // 键盘的高度;

//  键盘高度  >屏幕高  - 当前屏幕有内容的高度

CGFloat h = kScreenHeight  - kScreenHeight / 4 * _sectionNum;

if (keyHeight > h ) { // 意味着键盘挡住textField:

CGRect rect = self.view.frame;

rect.origin.y -= keyHeight - h ; // textFiled的父视图,往上移动;

self.view.frame = rect;

}

}

UITableViewCell *cell = (UITableViewCell*)view;

1.控制器:tableviewController

}`

解决方案:

`#pragma mark - textfieldDelegate

2.自定义cell内使用textfiled

tableview上添加textfield的当输入时键盘会遮挡到,解决方法如下,先上代码

3.- (CGRect)convertRect:(CGRect)rect fromView:(UIView *)view
方法获取到的textFiled的CGRect是一个固定值,没法用

[_新京葡娱乐场网址,tabelView scrollToRowAtIndexPath:[_tabelView
indexPathForCell:cell] atScrollPosition:UITableViewScrollPositionMiddle
animated:YES];

4.通知中心监测键盘弹出事件、各种计算、计算、计算改变view.fram的值都不尽人意

return YES;

BUG环境:

- textFieldShouldBeginEditing:(UITextField *)textField

主要代码如下:

相关文章

Comment ()
评论是一种美德,说点什么吧,否则我会恨你的。。。