2

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

-(void)viewDidAppear:(BOOL)animated{

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

    }

这工作得很好。但现在我想同时从下到上滚动(加载时间)。如何实现这个?提前致谢。

4

1 回答 1

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];
于 2012-06-09T13:25:03.120 回答