UIScrollView 滚动时为对象设置动画
Posted
技术标签:
【中文标题】UIScrollView 滚动时为对象设置动画【英文标题】:Animate objects when UIScrollView scrolls 【发布时间】:2013-08-12 05:18:50 【问题描述】:我有一个UIScrollView
,它有两页,只能水平滚动。
使用UIPageControl
控制滚动和分页。我在滚动视图上放置了一个UIImageView
,其中包含一个 iPhone 的图像(在下图中以红色显示),在第 1 页内显示 Hello。
当用户从第 1 页滚动到第 2 页时,我想为UIImageView
设置动画以旋转并更改其位置,如图所示。此外,理想情况下,当用户从 page-2 滚动回 page-1 时,动画应该会向后旋转。
UIImageView
的动画或移动是基于用户水平滚动的程度,而不是基于时间。
如何根据UIScrollView
的滚动位置来回旋转UIImageView
?
【问题讨论】:
您可以使用CABasicAnimation
和transform.rotation
animationWithKeyPath 来根据@rob 的建议制作这种类型的旋转动画
你提到的animationWithKeyPath。您可能知道在 Apple Doc 旁边的哪里可以找到更多信息
检查这个:- developer.apple.com/library/ios/documentation/GraphicsImaging/…
【参考方案1】:
为您的滚动视图设置委托。可能您希望您的视图控制器成为委托。您需要将UIScrollViewDelegate
添加到其协议列表中。
然后,在委托中实现scrollViewDidScroll:
。在scrollViewDidScroll:
中,查看滚动视图的contentOffset
。基于contentOffset
,设置图像视图的transform
和center
旋转并移动到你想要的位置。
【讨论】:
您能否添加一个使用transform
和contentOffset
的示例【参考方案2】:
要查看滚动视图滚动了多少,您可以查看 UIScrollView 的 contentOffset 属性:
contentOffset - 内容视图的原点所在的点 从滚动视图的原点偏移。
然后要旋转该图像视图,您可以这样做:
self.imageview.transform = CGAffineTransformMakeRotation(M_PI/2);
就动画而言,我个人没有太多经验。但是你可以看看Simple Animation Using UIImageView。
【讨论】:
而不是固定的 M_PI/2 ,我们可能需要根据内容偏移量来改变角度以上是关于UIScrollView 滚动时为对象设置动画的主要内容,如果未能解决你的问题,请参考以下文章
UICollectionVIew:在视图滚动时为单元格设置动画
javascript [在页面滚动上设置动画粘贴CTA]这将在滚动时为点击元素设置动画,并在用户点击时将其关闭。 #javascript #css #sitewre
javascript [在页面滚动上设置动画粘贴CTA]这将在滚动时为点击元素设置动画,并在用户点击时将其关闭。 #javascript #css #sitewre