以编程方式滑动 UIScrollView
Posted
技术标签:
【中文标题】以编程方式滑动 UIScrollView【英文标题】:Flick a UIScrollView programmatically 【发布时间】:2015-08-23 08:10:28 【问题描述】:当用户在 UIScrollView 上做出轻弹手势时,UIScrollView 会获得动力并开始移动,然后减速并最终停止。 但是我怎样才能以编程方式实现这一点呢?我的意思是不用手指轻弹,UIScrollView 就会自动开始移动,然后减速到 0 的速度。
在我的应用程序中,我的 UIScrollView 与普通的 UIScrollView 不同(比如说它看起来像一个滚轮),所以我想向用户提示他可以滚动它(然后一切都开始了!)
我用谷歌搜索了很多,但似乎没有办法解决我的问题。 setContentOffset 无法产生自然的“减速并停在前方某处”的效果。
任何想法都将不胜感激。
提前致谢。
【问题讨论】:
嘿,我不明白,你想为 UIscrollView 创建自定义滚动动画吗? 不,我不想为 UIScrollView 创建自定义滚动动画,但希望 UIScrollView 自动滚动,就像用手指轻弹一样。假设滚动视图最初是静止的,然后它突然开始移动,就像有人在上面做了一个轻弹手势但没有人这样做,然后它自然减慢并最终停在某个地方。 试试我的代码,可能对你有帮助。 【参考方案1】:试试,类似这样的>
[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
];
我认为它就像你想要的(带有滑动效果的阻尼动画)
【讨论】:
它对我有用!非常感谢您的精彩分享! ;)以上是关于以编程方式滑动 UIScrollView的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式切换视图时iphone tableviewcontroller左/右滑动?
如何使用现有 UIPageViewController 的按钮以编程方式滑动视图