我正在开发一个带有滚动视图的应用程序。现在不是很明显,内容更多,并且没有滚动指示器(滚动视图被分页)。
所以,为了给用户一个'嘿,这里有一些东西......',我想让滚动视图在启动时做一个微妙的反弹 - 然后再向上。我试过这个:
- (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];
}
然而,这段代码使得视图在两页之间的大约中间被“卡住”。
任何帮助?
答案 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){
}
];
}
];