2014-01-20 3 views
2

Мне нужно настроить scrollviewer до некоторой точки после того, как пользователи завершили прокрутку. Для этого мне нужно услышать, когда прокрутка закончилась.Как определить, когда прокрутка scrollviewer закончилась?

Иос UIScrollView имеет некоторые аналогичные методы

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView that is called when the scrollview 

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate 

Я попытался ViewChanging и ViewChanged, но проблема с обработкой оба события одновременно является то, что они происходят одно за другим. Как следующее:

вид изменения

вид изменился

вид изменения

вид изменился

..

..

вместо -

вид изменения меняющийся

вид

вид меняющийся

вид изменения

вид изменился

Есть ли способ я могу получить уведомление о когда ScrollViewer сделал или прокручивается прокрутка через перетаскивание?

Пожалуйста, помогите.

+0

Возможно, вы можете использовать событие ManipulationCompleted для этого –

+0

Я тоже пытался добавить обработчик, но он так и не вызван. возможно, потому что никаких изменений в свойствах scrollviewer нет. – Ajeet

+0

'IsIntermediate'? http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.scrollviewer.viewchanged – Ouadie

ответ

2

Что Вы можете сделать, это:

  • 1.Capture MouseWheel событие.
  • 2.Fire до нитки в обработчик события MouseWheel, что будет рассчитывать время, чтобы поднять пользовательское событие твоего, как FinishedScrolling
  • 3.Если в MouseWheel случае получает поднят до отделки таймера, это означает, что прокрутка не выполняется, и вы должны прекратить работу таймера и начать его снова.

Как это сделать? Это не должно занимать слишком много кода, и если вы используете MVVM, вы можете использовать Attached Behavior.

+0

Спасибо, Майк! Я много искал и основывался на том, что я думаю, прямо сейчас его единственный подход, пока MS не решит добавить это событие. – Ajeet

Смежные вопросы