У меня есть приложение, в котором я перемещаю все свои UIView
вверх при использовании клавиатуры, чтобы не скрывать некоторые важные UITextField
с.
Моя проблема в том, что UITableView
, который у меня есть, не ведет себя так же, как все другие представления. Вместо перемещения всего UITableView
он перемещает только свой верхний край, и это изменяет размер UITableView
, что не является желаемым эффектом.
Моя проблема лучше описана здесь: http://www.youtube.com/watch?v=AVJVMiBULEQ
Это код, который я использую для анимации:
-(void)setViewMovedUp:(BOOL)movedUp
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5]; // if you want to slide up the view
[UIView setAnimationBeginsFromCurrentState:YES];
CGRect rect = self.view.frame;
if (movedUp) {
// 1. move the view's origin up so that the text field that will be hidden come above the keyboard
// 2. increase the size of the view so that the area behind the keyboard is covered up.
rect.origin.y -= 140;
rect.size.height += 140;
} else {
// revert back to the normal state.
rect.origin.y += 140;
rect.size.height -= 140;
}
self.view.frame = rect;
[UIView commitAnimations];
}