Как мне остановить автоматическую прокрутку UIScrollView при касании UITextField из фрейма прокрутки? - PullRequest
5 голосов
/ 24 августа 2011

По умолчанию, если текстовое поле является дочерним по отношению к просмотру прокрутки и к нему прикасаются, когда оно находится частично вне рамки родительского просмотра прокрутки, представление прокрутки немного прокручивается вверх. Например, предположим, что у нас есть представление прокрутки с высотой кадра 200, но с высотой contentSize 260, и мы помещаем текстовое поле в позицию 220. Теперь я прокручиваю вверх и располагаю текстовое поле наполовину внутри кадра прокрутки и позволяю другая половина отрезана. Если я коснусь этого текстового поля, я замечу, что представление прокрутки автоматически прокручивается на пару пикселей вверх, прежде чем появится клавиатура. Это проблематично, потому что у меня уже есть свой собственный код прокрутки, поэтому, когда это происходит, в итоге прокручивается вдвое дальше, чем я хочу. Есть ли способ удалить это поведение по умолчанию?

Ответы [ 2 ]

1 голос
/ 31 октября 2011

Звучит так, будто ваше прокручиваемое изображение перемещается в ответ на отображение клавиатуры, а не касание текстового поля.Взгляните на документацию Apple's Managing the Keyboard ;здесь есть полезный раздел о просмотрах прокрутки.

0 голосов
/ 02 апреля 2013

Подобный вопрос уже был дан ответ здесь: https://stackoverflow.com/a/5673026/550177

Вы также можете попытаться сбросить contentOffset вида прокрутки, когда текстовое поле становится первым респондентом. Реализуйте делегат текстового поля следующим образом:

-(void)textFieldDidBeginEditing:(UITextField *)textField
{
    [self.scrollView setContentOffset:_scrollView.contentOffset animated:NO];
}

Этот код удаляет эту автоматическую анимацию при выделении текстового поля. Я тестировал с iOS 6.1 в симуляторе.

...