4

所以这完全超出了我的(专业知识?)领域,所以我想我会问它,看看是否有更有经验的人能给我一个是或否的答案。

所以,我正在使用 Appcelerator Titanium 来构建一个有很多 tableviews 的应用程序。我正在寻找构建它,以便一些 tableViews 从底部开始,我可以向上滚动而不是向下滚动来启动,这与 iPhone 上的“消息”应用程序完全相同。

它的工作方式是加载内容,并自动加载固定在底部的表格视图,然后您可以向上滚动以查看较旧的帖子。

除了创建表格视图,加载数据,然后将其滚动到底部(显然有捕捉)之外,我找不到在 appcelerator 中执行此操作的方法。我可以隐藏 tableview,滚动到底部,然后显示 tableview,但同样......不理想。

现在的问题......是否可以使用标准的 iOS SDK(不是 appcelerator)来设置一个表格来固定到底部而不是顶部?如果没有,我将不得不以某种方式找到解决方法。如果是的话,如果可能的话,我想尝试将它构建成钛模块......

无论如何,谢谢!希望这对你们中的一些人来说是一个简单的答案。

4

2 回答 2

9

实际上,这真的很琐碎。像这样的东西会很好用:

-(void)viewDidLoad {
   //place this at the bottom of your viewDidLoad method, or in any method that initially reloads the table
    NSIndexPath* ipath = [NSIndexPath indexPathForRow: myArray.count-1 inSection: 0];
    [tableView scrollToRowAtIndexPath: ipath atScrollPosition: UITableViewScrollPositionBottom animated: NO]
}
于 2012-08-19T05:11:14.470 回答
1

我尝试在 viewDidLoad 中滚动,但是在视图控制器出现后,我可以看到视图中表格的开头出现。

我找到了初始滚动的更好位置。

- (void) viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];

    NSInteger lastSectionIndex = MAX(0, [self.chatTableView numberOfSections] - 1);
    NSInteger lastRowIndex = MAX(0, [self.chatTableView numberOfRowsInSection:lastSectionIndex] - 1);
    NSIndexPath *lastIndexPath = [NSIndexPath indexPathForRow:lastRowIndex inSection:lastSectionIndex];
   [self.chatTableView scrollToRowAtIndexPath:lastIndexPath atScrollPosition:UITableViewScrollPositionBottom animated:NO];
}
于 2014-04-21T04:45:42.840 回答