在UITableview中自动向下和向上滚动

时间:2012-06-09 12:14:38

标签: iphone objective-c uitableview

我正在开发一个Iphone应用程序,它包含一个带有8个单元格的UITableview。我实现了一个NSMutableArray,用于在单元格创建时存储每个单元格,但tableview加载时间只提供显示的单元格存储到数组。这个问题我已经自动滚动表视图,并使用以下代码获取存储到数组的总单元格;

-(void)viewDidAppear:(BOOL)animated{

    [tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:[musicGenre count]-1 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:YES];

    }

这是完美的。但是现在我想要同时从下到上滚动(加载时间)。如何实现这个? 在此先感谢。

1 个答案:

答案 0 :(得分:9)

由于UITableView继承自UIScrollView,您可以使用以下内容:

- (void)viewDidAppear:(BOOL)animated{

  [table setContentOffset:CGPointMake(0.0, table.contentSize.height - table.bounds.size.height)
                 animated:NO];  

  [tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:[musicGenre count]-1 inSection:0]                                                
                   atScrollPosition:UITableViewScrollPositionBottom
                           animated:YES];
}

编辑:

如果您想要从顶部到底部的初始移动也是动画,只需使用:

- (void)viewDidAppear:(BOOL)animated{

  [table setContentOffset:CGPointMake(0.0, table.contentSize.height - table.bounds.size.height)
                 animated:YES]; 

  [tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:[musicGenre count]-1 inSection:0]                                                
                   atScrollPosition:UITableViewScrollPositionBottom
                           animated:YES];
}

但请考虑用户体验 - 是否需要动画?因为用户(特别是如果他们经常使用你的应用程序)不喜欢浪费时间。当动画增强用户体验并且不会导致工作流程延迟时,动画非常棒。

EDIT2:滚动到顶部(从当前位置),您可以使用:

 [table setContentOffset:CGPointZero
                animated:YES];