UIscrollview具有分页动画自动

时间:2012-01-23 12:10:24

标签: iphone objective-c ios ios5

我有一个带有分页的滚动视图它是带有4张图片的幻灯片的滚动视图它可以正常工作用户交互所以我的问题我想设置这个滚动视图自动滚动而无需用户交互所以就像酒吧的横幅这是我的代码视图didload:

 [UIScrollView beginAnimations:nil context:nil];
    [UIScrollView setAnimationDuration:4.0];

[UIScrollView setAnimationDelay:4.0];
[scroller setContentOffset:CGPointMake(320, 98)];      
[UIScrollView commitAnimations ];

在这个滚动自动工作但问题滚动等待4秒后转到seconde图像并停止,如果我添加此代码

[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 ];

滚动条在显示第二张图片后不会停止4s所以在这种情况下,如果动画开始不停止,它会在前4秒停止

所以我的问题我想这样做:

图像1 ---显示4秒-----图像2 ----显示4s ----- image3 ----显示为4s ----图像4 ----显示为4 s ----- image 1 ----显示4秒......就像这种自动化

所以,如果有人可以帮我提供示例代码或教程或任何文档,那将非常酷,因为我在谷歌搜索,我发现任何东西

2 个答案:

答案 0 :(得分:0)

创建一个间隔为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;
    }
}

答案 1 :(得分:0)

我在我之前的一个回答中做了一个例子: UITableView scroll smooth with certain speed?

如果您可以对需要进行的更改进行解密,则此示例将非常适合您。

以下是您需要做的事情: 在您想要启动动画的那一刻(甚至是在页面的开始或选择上),您需要启动计时器。然后,在某个自定义间隔,您可以触发一个方法,将contentOffset设置得更靠右(适当地更改Y值)。当你到达页面的末尾或者你运行目标方法x-times(它被ezily存储在property / global val中)时,你可以使计时器失效。

看看我发布的问题,你会发现那里的每一个难题。 你会明白的。

祝你好运。