dan*_*dan 12 iphone animation scroll uitableview
如何使用动画将UITableView滚动到特定位置?
目前我正在使用此代码跳转到某个位置:
//tableController -> viewDidLoad
[self.tableView reloadData];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:0];
[self.tableView scrollToRowAtIndexPath:indexPath
atScrollPosition:UITableViewScrollPositionTop
animated:YES];
Run Code Online (Sandbox Code Playgroud)
这段代码的问题是,表格没有任何动画就会直接跳到正确的位置.有没有办法启用动画或设置持续时间?
谢谢你的帮助.
mxg*_*mxg 23
这对我来说可以:
-(void) viewDidAppear:(BOOL)animated{
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:n inSection:0];
[self.tableView scrollToRowAtIndexPath:indexPath
atScrollPosition:UITableViewScrollPositionTop
animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
为了确保只调用一次,您可以进行如下验证:
if(!isInitialized){
isInitialized = YES;
....
}
Run Code Online (Sandbox Code Playgroud)
尝试发表评论reloadData.如果我正确地理解了您的问题,并且您已经进入viewDidLoad,那么无论如何都不需要调用它.
此外,如果您刚刚完成推动视图控制器,您将无法获得动画滚动.你必须在viewDidLoad被调用的时间和动画开始之间插入延迟(我发现四分之一秒工作正常).
我有两个建议供您调查:
您的应用程序是在模拟器上运行还是在 iPhone 上运行?我注意到一些动画在模拟器中的行为有所不同。
您是否有可能连续快速调用两次scrollToRowAtIndexPath:atScrollPosition:animated?这可能会“混淆”动画。在处理给定事件时,您应该仅调用此函数一次。
| 归档时间: |
|
| 查看次数: |
25329 次 |
| 最近记录: |