键盘显示和键盘辞职时无法设置正确的UITableView滚动

时间:2017-03-27 14:27:18

标签: ios objective-c uitableview keyboard

我有UITableView,在TableView里面我有一个包含标签和文本字段的自定义单元格。现在,当我使用keyboardNotifier(键盘出现),当我点击一个文本字段然后没有按下返回按钮时,我点击另一个文本字段,它将第一个文本字段与键盘和第二个文本字段之间的空间添加到键盘,即它将两者的空间相加textfield,它在文本字段之间滚动到顶部,空间很大。任何人都可以告诉我,我可以做些什么来保持文本字段之间保持适当的距离。

这是我的代码:

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

    CGRect frame = [RegisterTableVIew frame]; //RegisterTableVIew is  tableview
    frame.size.height -= 200; 
    [RegisterTableVIew setFrame:frame];
keyboardStatus = YES;

}

-(void) keyboardWillHide:(NSNotification *)note
{
   CGRect frame = [RegisterTableVIew frame]; //RegisterTableVIew is  tableview
    frame.size.height += 200; 
    [RegisterTableVIew setFrame:frame];

    keyboardStatus = NO;
}

2 个答案:

答案 0 :(得分:1)

我明白不清楚,顺便说一句,这对我很有帮助!

    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    if(![_Search resignFirstResponder])
    {
        [_Search resignFirstResponder];
    }
    else
    {

    }
    [super touchesBegan:touches withEvent:event];
}

答案 1 :(得分:0)

试试这个;

-(void)keyboardNotifier:(NSNotification *)notification {
  if(keyboardStatus == NO) {
    CGRect frame = [RegisterTableVIew frame]; //RegisterTableVIew is  tableview
    frame.size.height -= 200; 
    [RegisterTableVIew setFrame:frame];
    keyboardStatus = YES;
  }
}

-(void) keyboardWillHide:(NSNotification *)note
{
 if(keyboardStatus) {
   CGRect frame = [RegisterTableVIew frame]; //RegisterTableVIew is  tableview
    frame.size.height += 200; 
    [RegisterTableVIew setFrame:frame];
    keyboardStatus = NO;
  }
}

我从你的问题中了解到,每次点击文本字段时,tableView都会向上滚动创建大量空间。