2015-08-23 4 views
4

Когда пользователь делает жест flick на UIScrollView, UIScrollView получает импульс и начинает двигаться, затем замедляется и, наконец, останавливается. Но как я могу сделать это программно? Я имею в виду, что без щелчка пальцем UIScrollView просто начинает автоматически двигаться, а затем замедляется до скорости 0.Flick a UIScrollView программно

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

У меня много проблем в googled, но не было возможности решить мою проблему. SetContentOffset просто не мог сделать естественный эффект «замедлить и остановиться где-то впереди».

Любая идея будет оценена по достоинству.

Заранее спасибо.

+0

Эй, я не понимаю, вы хотите создать пользовательскую анимацию прокрутки для UIscrollView? –

+0

Нет, я не хочу создавать пользовательскую анимацию прокрутки для UIScrollView, но хочу, чтобы UIScrollView прокручивался автоматически, так как он был щелкнут пальцем. Скажем, что сначала вид прокрутки статический, затем он внезапно начинает двигаться, как будто кто-то сделал на него жестом, но никто этого не делал, затем он, естественно, замедляется и, наконец, останавливается где-то. – huanah

+0

попробуйте мой код, возможно, вам это помогает. –

ответ

1

Try, что-то вроде этого>

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDelegate:self]; 
[UIView setAnimationDelay:.8]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; 
[UIView setAnimationDuration:(abs(1-3)*0.3)]; 
self.myScroll.contentOffset = CGPointMake(0, 500); 
[UIView commitAnimations]; 

Это не в настоящее время, что вам нужно, но вы можете настроить этот код, и может быть все ок)


или использовать этот код >

[UIView animateWithDuration:2. 
         delay:0.3 
    usingSpringWithDamping:1. 
     initialSpringVelocity:7. 
        options:UIViewAnimationOptionCurveEaseInOut animations:^{ 
         //Animations 
         self.myScroll.contentOffset = CGPointMake(0, 500); 
        } 
       completion:^(BOOL finished) { 
        //Completion Block 
       }]; 

Я думаю, что это, как вы хотите (анимация с затуханием, как сенсорное эффект)

+0

Это работает для меня! Большое вам спасибо за большой обмен! ;) – huanah

+0

@huanah О, спасибо)) Я бы хотел помочь. –

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