Изменение размера UITableView при перемещении контейнера UIView - PullRequest
1 голос
/ 10 декабря 2011

У меня есть приложение, в котором я перемещаю все свои 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];
}

1 Ответ

1 голос
/ 18 декабря 2011

Как решено в комментариях выше, код выше работает, когда представление не имеет автоматического изменения размера.Более простой подход состоит в том, чтобы использовать преобразования CGAffineTransform, которые вычисляют кадр вида вместо вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...