插入新行后,UITableView不会滚动到最后一行

时间:2014-04-10 18:21:28

标签: ios6 uiscrollview uikit uitableview

我正在尝试使用

从其他类在TableViewController的tableView对象中插入行
UINavigationController *navigationController = (UINavigationController *)[UIApplication sharedApplication].keyWindow.rootViewController;
    ReceiptHomeTableViewController *homeTableViewController= (ReceiptHomeTableViewController*)navigationController.viewControllers[0];
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:([[PersistenceService getInstance] count]-1) inSection:0];
    [homeTableViewController.tableView insertRowsAtIndexPaths:@[indexPath]
                                             withRowAnimation:UITableViewRowAnimationNone];

我也尝试过使用

//[homeTableViewController.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];
//[homeTableViewController.tableView reloadData];

但HometableViewContoller仅显示适合屏幕宽度的行。我尝试滚动到底部,但它没有进入最后一行。 如果我重新启动应用程序并使用ellForRowAtIndexPath:方法创建单元格,则滚动工作非常完美,但如果添加新行则无法工作。

在添加行时,似乎没有更新有关视图的新长度的UI。有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

由于声誉低于50,我无法发表评论。所以我想在答案部分提出有关这个问题的建议。

根据您的问题,您必须发布cellForRowAtIndexPath方法。然后只有线索会点击。请在tableCell子查看的视图中NSLog新的行对象。

编辑帖子后,如果我得到答案或任何线索,我会通过编辑在这篇文章中给出答案。

答案 1 :(得分:-1)

我发现了问题。我在tableviewcontroller上默认启用了autolayout。关掉它对我有用。

感谢您的光临