弹跳UIScrollView - 暗示还有更多

时间:2013-04-27 17:15:01

标签: ios uiscrollview

我正在开发一个带有滚动视图的应用程序。现在不是很明显,内容更多,并且没有滚动指示器(滚动视图被分页)。

所以,为了给用户一个'嘿,这里有一些东西......',我想让滚动视图在启动时做一个微妙的反弹 - 然后再向上。我试过这个:

- (void)viewDidLoad
    ....
    [NSTimer scheduledTimerWithTimeInterval:0.8 target:self selector:@selector(bounceScrollView) userInfo:nil repeats:NO];
}
- (void)bounceScrollView
{
    [self.verticalScrollViews[0] scrollRectToVisible:CGRectMake(0, 600, 1, 1) animated:YES];
    [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(_unbounceScrollView) userInfo:nil repeats:NO];
}
- (void)_unbounceScrollView
{
    [self.verticalScrollViews[0] scrollRectToVisible:CGRectZero animated:YES];
}

然而,这段代码使得视图在两页之间的大约中间被“卡住”。

任何帮助?

2 个答案:

答案 0 :(得分:6)

创意1 :您需要关闭分页,为退回设置动画,然后重新打开分页。

创意2 :你的第二步太快了:

scheduledTimerWithTimeInterval:0.01

尝试更长的时间间隔!我会从0.4开始。

创意3 :为什么不使用flashScrollIndicators而不是反弹?这正是它的用途!

答案 1 :(得分:1)

使用NSTimer时出现内存问题。这就是我为scrollView预览使用另一种解决方案的原因。

        [UIView animateWithDuration:1.0
                              delay:0.00
                            options:UIViewAnimationOptionCurveEaseInOut
                         animations:^{
                             _scrollView.contentOffset = CGPointMake(200,0);
                         }
                         completion:^(BOOL finished){
                             [UIView animateWithDuration:1.0
                                                   delay:0.00
                                                 options:UIViewAnimationOptionCurveEaseInOut
                                              animations:^{
                                                  _scrollView.contentOffset = CGPointMake(0,0);
                                              }
                                              completion:^(BOOL finished){
                                              }
                              ];
                         }
         ];