仅当对象在UIScrollView上可见时才为其设置动画

时间:2014-09-02 05:07:54

标签: ios objective-c animation uiscrollview uiimageview

我想在UIScrollView中设置一组UIImageViews(该部分已经完成)。但是动画应该仅在用户将滚动视图滚动到其特定位置时才开始。换句话说,只有当特定的UIImageVIew可见时才能启动动画。

2 个答案:

答案 0 :(得分:1)

  1. 实施scrollView委托scrollViewDidScroll:

  2. scrollViewDidScroll:实现中:获取scrollview的contentView的可见rect。 Here's how

  3. 使用CGRectContainsRect()检查要制作动画的子视图是否位于可见的矩形内。

  4. 这未经过测试,但希望有所帮助:

    - (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
         }
    }
    

答案 1 :(得分:0)

请转到此页面,这可能会对您有所帮助。我在一个imageview上尝试过它。同样,您可以在代码中为所有imageview执行此操作。

[blog]:http://icodeguru.blogspot.in/2014/09/animated-imageview-stops-animating-when.html