#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 обработает изменение размера при отображении на клавиатуре за вас.