UIScrollView ScrollRectToVisible - не работает с animate = yes

У меня есть UIScrollView, содержащий кнопку. Когда кнопка нажата, я хотел бы прокрутить до нижней части представления, используя scrollRectToVisible.

например:

CGRect r = CGRectMake(0, myUIScrollView.contentSize.height - 1, 1, 1);
[myUIScrollView scrollRectToVisible:r animated:YES];

Если я установил для анимации значение NO, все будет работать должным образом, но если установить ДА, я вижу действительно странное поведение:

  • в основном ничего не происходит.
  • если я нажимаю кнопку несколько раз, она может прокрутить пару пикселей, или можно прокрутить до конца.
  • но если я прокручиваю вид вручную пальцем перед нажатием кнопки, у него есть шанс прокрутки вниз, как и ожидалось, но это не совсем точно.

Я напечатал _geScroll_Settings.contentSize, и он, как и ожидалось.

Я также попытался отложить вызов scrollRectToVisible запуском таймера, но результаты почти такие же.

scrollView довольно ванильный. Я создаю его в конструкторе интерфейсов. Я динамически добавляю содержимое scrollView при запуске и соответствующим образом корректирую его contentSize, но все, похоже, работает нормально.

Есть какие-нибудь мысли?

5
задан vcsjones 18 May 2012 в 13:14
поделиться