Последние четыре строки табличного представления не будут перемещены из-под клавиатуры

#objective-c #ios #cocoa-touch #uitableview

#objective-c #iOS #cocoa-touch #uitableview

Вопрос:

У меня есть табличное представление с четырьмя разделами и в общей сложности 21 строкой, в которой каждая ячейка содержит текстовое поле с правой стороны.

Когда я пытаюсь прокрутить и отредактировать ячейки внизу табличного представления, мне не удается правильно расположить последние четыре-пять ячеек над клавиатурой. Остальная часть таблицы расположена нормально.

Я вызывал этот метод в textFieldDidBeginEditing: with moveUp:YES и в textFieldShouldReturn: with NO .

 #define kOFFSET_FOR_KEYBOARD 42
-(void)viewMoveUp:(BOOL)moveUp{

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.5]; 

    CGRect rect = self.view.frame;
    if (moveUp)
    {
        rect.origin.y -= kOFFSET_FOR_KEYBOARD;
        rect.size.height  =  kOFFSET_FOR_KEYBOARD;
    }
    else
    {
        // revert back to the normal state.
        rect.origin.y = 0;
        rect.size.height =  360;
    }
    self.view.frame = rect;

    [UIView commitAnimations]; 


}
  

Ответ №1:

Сделайте это проще.

Используйте UITableViewController вместо UIViewController. UITableViewController обработает изменение размера при отображении на клавиатуре за вас.