Клавиатура блокирует UITableViewCell в UITextField? - PullRequest
1 голос
/ 31 декабря 2011

В настоящее время у меня есть UITextField в каждом UITableViewCell, но проблема в том, что если есть 2 или более ячеек, ячейка может быть обрезана.

Есть ли простой способ сделать так, чтобы ячейка была видимойкогда моя клавиатура открыта?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 28 ноября 2012

Это сработало очень хорошо для меня, на случай, если кому-то все еще нужен ответ:

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    if (self.tableView.contentOffset.y == 0)
    {
        [UIView animateWithDuration:0.0 delay:0.5 options:UIViewAnimationOptionAllowUserInteraction animations:^{
        } completion:^(BOOL finished) {
            UITableViewCell *cell = (UITableViewCell*) [[textField superview] superview];
            [self.tableView scrollToRowAtIndexPath:[self.tableView indexPathForCell:cell] atScrollPosition:UITableViewScrollPositionTop animated:YES];
        }];
    }
}

Проблема заключалась в том, что клавиатура не учитывалась при перемещении к ячейке, поэтому я просто добавил вызов в небольшом блоке задержки.

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

Если я правильно понимаю ваш вопрос, вы хотите, чтобы представление прокручивалось при появлении клавиатуры. Если вы сделаете свой viewController подклассом UITableViewController, я полагаю, что вы получаете прокрутку бесплатно. Единственный другой вариант, к сожалению, не так прост. Вам нужно поэкспериментировать с методами делегирования, чтобы переместить ваш взгляд вверх и вниз (и анимировать его, если вы хотите, чтобы он двигался вверх с помощью клавиатуры). На это вы можете найти множество ответов, поэтому я не буду вдаваться в подробности, вот несколько ссылок, которые могут вам помочь!

Подробное описание здесь

Отличное объяснение здесь

Некоторые UIScroll Подробнее см. Здесь

Подробнее здесь

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