【发布时间】:2013-11-04 08:39:16
【问题描述】:
我有谷歌搜索它,但没有在互联网上找到任何东西来解决我的问题,但我认为我的问题将非常容易解决,但我找不到合适的关键字。
我有一个视图控制器,其中包含一个名为 ReadingView 的文本,该视图具有很长的文本,可以滚动阅读文本。当用户进入 ReadingView 时,它会自动向下滚动到底部,用户可以通过我实现的 UISlider 来提高滚动速度
问题是我可以通过这段代码毫无问题地进行自动滚动
[UIScrollView beginAnimations:@"scrollAnimation" context:nil];
[UIScrollView setAnimationDuration:1.0f];
[scroll setContentOffset:CGPointMake(x, y)];
[UIScrollView commitAnimations];
但上面的代码是基于时间的。我必须找到基于帧或像素的动画。因为,如果我使用基于时间的动画,一些文本很长,它会非常非常快地向下滚动到底部,而短文本会非常慢。
你们知道我是否可以做类似的动画
“嘿,滚动视图,你必须每帧向下移动 10 个像素,直到 上下文结束,我不在乎需要多长时间,固定速度!!”
谢谢你的帮助,你们可以给我一个关键字或任何东西来帮助我
更新 由 Fogmeister 推荐完成。 这个概念是使用块动画并通过使用计算每个文本的时间 时间=文本长度/速度 并且您将获得每个文本的不同时间并使用该时间来制作动画。我从来没有想过这个......我一直在寻找的是通过PIXEL做动画的功能,这是一个错误的关键字。
CGFloat scrollingPointSpeed = myslider.value; //value of UI Slider//
CGFloat time = offset/scrollingPointSpeed ;
[UIView animateWithDuration:time delay:0.0 options:UIViewAnimationOptionCurveLinear animation:^()
{
self.scroll.contentOffset = CGPointMake(0, offset);
}
completion:nil];
【问题讨论】:
-
根据uilabel中的总行数设置setAnimationDuration
-
这种动画方法不应该在 iOS 4 或更高版本中使用。你应该像我的回答那样使用基于块的动画。
标签: ios animation uiscrollview