我想在UIScrollView中设置一组UIImageViews(该部分已经完成)。但是动画应该仅在用户将滚动视图滚动到其特定位置时才开始。换句话说,只有当特定的UIImageVIew可见时才能启动动画。
答案 0 :(得分:1)
实施scrollView委托scrollViewDidScroll:
。
在scrollViewDidScroll:
实现中:获取scrollview的contentView的可见rect。 Here's how
使用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
}
}
答案 1 :(得分:0)
请转到此页面,这可能会对您有所帮助。我在一个imageview上尝试过它。同样,您可以在代码中为所有imageview执行此操作。
[blog]:http://icodeguru.blogspot.in/2014/09/animated-imageview-stops-animating-when.html