2014-09-02 2 views
0

Я хотел анимировать набор UIImageViews в UIScrollView (эта часть уже выполнена). Но анимация должна начинаться только тогда, когда пользователь прокручивает scrollview до своей конкретной позиции. Другими словами, анимация должна начинаться только тогда, когда видна определенная UIImageView.Анимация объектов только тогда, когда они видны на UIScrollView

+0

не прямой путь, но этот ответ [] (http://stackoverflow.com/a/2950979/2857130) должно помочь. Хотя это будет тяжело, потому что '-scrollViewDidScroll:' будет вызываться слишком часто. В любом случае ... – staticVoidMan

ответ

1
  1. Реализовать Scrollview делегата scrollViewDidScroll:.

  2. В scrollViewDidScroll: реализация: получить видимый прямоугольник contentView прокрутки. Here's how.

  3. Проверьте, находится ли подзаголовок, который вы хотите оживить, в пределах видимого прямоугольника, используя CGRectContainsRect().

Это не проверял, но надеюсь, что это поможет:

- (void) scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    // get the scrollView's contentView visible rect 
    // from here: https://stackoverflow.com/questions/868288/getting-the-visible-rect-of-an-uiscrollviews-content 
    CGRect visibleRect; 
    visibleRect.origin = scrollView.contentOffset; 
    visibleRect.size = scrollView.contentSize; 

    if(CGRectContainsRect(visibleRect, rectOfScrollViewSubviewYouWantToAnimate)) 
    { 
      // NOTE: This will be called multiple times as the scrollview moves 
      // do your animation here: 
    } 
    else 
    { 
      // rectOfScrollViewSubviewYouWantToAnimate is out of scrollView Visible area 
    } 
} 
0

Пожалуйста, перейдите на эту страницу, это может вам помочь. Я попробовал это на одном изображении. Аналогичным образом вы можете выполнить это для всего изображения в своем коде.

[блог]: HTTP: //icodeguru.blogspot.in/2014/09/animated-imageview-stops-animating-when.html

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