具有分页动画自动的滚动视图
Posted
技术标签:
【中文标题】具有分页动画自动的滚动视图【英文标题】:UIscrolview with paging annimated automatic 【发布时间】:2012-01-23 12:10:24 【问题描述】:我有一个带有分页功能的 scrollview 它是一个带有 4 张图片的幻灯片的滚动视图 它可以很好地与用户交互,所以我的问题是我想在没有用户交互的情况下设置这个 scrollview scroll automatique 所以就像酒吧的横幅这是我的代码视图加载:
[UIScrollView beginAnimations:nil context:nil];
[UIScrollView setAnimationDuration:4.0];
[UIScrollView setAnimationDelay:4.0];
[scroller setContentOffset:CGPointMake(320, 98)];
[UIScrollView commitAnimations ];
在这种情况下,卷轴自动工作,但问题是卷轴等待 4 秒,然后转到第二张图像并停止,如果我添加此代码
[UIScrollView beginAnimations:nil context:nil];
[UIScrollView setAnimationDuration:4.0];
[UIScrollView setAnimationRepeatAutoreverses:YES];
[UIScrollView setAnimationRepeatCount:INFINITY];
[UIScrollView setAnimationDelay:4.0];
[scroller setContentOffset:CGPointMake(320, 98)];
[UIScrollView commitAnimations ];
滚动条在显示第二张图片后不会停止 4 秒,因此在这种情况下,如果动画开始后,它会在前 4 秒停止,永远不会停止
所以我的问题是我想这样做:
image 1 ---显示 fo 4 s -----image2 ----显示 4s ----- image3 ----显示 4s ----image 4 ----显示4 s ----- 图像 1 ---- 显示 4 s ...... 像这样自动
因此,如果有人可以帮助我提供示例代码或教程或任何文档,那将非常酷,因为我在 google 中搜索并找到任何东西
【问题讨论】:
【参考方案1】:我在我之前的回答中做了一个例子: UITableView scroll smooth with certain speed?
如果您可以解密您需要进行的更改,那么这个示例对您来说将非常相关。
以下是您需要做的: 在您想要启动动画的那一刻(甚至在页面上的开始或选择处),您需要启动计时器。然后在某个自定义时间间隔内,您可以触发一个方法,将 contentOffset 设置为稍微向右(适当地更改 Y 值)。当您到达页面末尾或运行目标方法 x 次(ezily 存储在属性/全局 val 中)时,您可以使计时器无效。
看看我发布的问题,你会发现其中的每一块拼图。 你会想办法的。
祝你好运。
【讨论】:
哇,谢谢你的帮助,它工作正常,但是如果我在 viewdidload 中使用了 nstimer,它会在加载视图后停止,所以我的应用程序基于 uivewcontroller? 我建议你把它放在ViewDidAppear中。还要确保不要过早地使计时器失效。 感谢您的帮助,但在 viewdidAppear 中也出现了同样的问题,就像视图加载了一样 你很可能在 NSTimer 上做错了什么。你能把这段代码贴在你加载 VC 的地方,然后把计时器放在 loadview 或 viewdidappear 中,然后告诉我你认为它应该如何工作。【参考方案2】:创建一个间隔为 4 秒的 NSTimer。
让这成为火法:
- (void)timerFireMethod
horOffSet = horOffSet + 320;
//CGFloat horOffSet is an instance variable of the ViewController.
//init as 0; I assume the width is 320. Any other width possible
[scroller setContentOffset:CGPointMake(horOffSet, 98) animated: YES];
if (horOffSet == 3*320)
horOffSet = 0;
【讨论】:
也感谢这段代码是有效的,但我在哪里但是 nstimer 因为我希望在 lanch 视图中工作,然后如果我在第二个停止后创建一个大的间隔计时器,那么视图确实加载了所以任何帮助?再次感谢 你确定你的 NSTimer 重复吗?我真的很抱歉,但我不能 100% 理解你的评论。你能说得更具体点吗?以上是关于具有分页动画自动的滚动视图的主要内容,如果未能解决你的问题,请参考以下文章
具有滚动效果的页面视图控制器与启用分页的 UIScrollView