我一个tableView滑动到底部,但是总是没有滑动到最底部,会有一小段没滑动下去

1,想做一个会话界面,进来的时候滑动到最底部。
2,但是滑动到最底部的代码 使用之后,并没有滑动到最底部,总是差一截。
3,并不是那种底部有一段不能滑动上来的那种错误,是可以滑动上来的,就是在进来这个view的时候,不能直接滑动到最底部
4,这是我的代码

 let indexPath = NSIndexPath(forRow: self.chatMessageModel.contentType.count-1, inSection: 0)
 self.scrollToRowAtIndexPath(indexPath, atScrollPosition: .Bottom, animated: false)
 

5,这张图是我进会话的view之后的样子图片描述

6,这张图红框标出的就是tableView下面还有一小段 没有滑动到底的
图片描述

问:谁知道为什么会这样么?

阅读 16.9k
14 个回答
新手上路,请多包涵

是不是下边的输入栏覆盖了下边的内容?设置下contentOffset或contentInset试试。

indexPath的row不对吧?

新手上路,请多包涵

是不是要设置automaticallyAdjustsScrollViewInsets这个属性呢?看高度也不太像64

  1. 确定tableView frame没问题

  2. 确定tableView reload完全

  3. 试试scroll to contentOffset (max,max)

[tableView setContentOffset:CGPointMake(CGFLOAT_MAX, CGFLOAT_MAX)];

这个可以让Tableview直接显示下面
这是OC代码,Swift找到相同的方法就行。
我猜应该是

tableview.ContentOffset = ·······
  1. 你在viewWillAppear重新设置下 tableView的frame;可以在这打印下 “tableView的frame”

  2. 还有看看的行高对不对。

  3. 不行的话设置 ContentOffset

[tableView setContentOffset:CGPointMake(CGFLOAT_MAX, CGFLOAT_MAX)];

问题解决了吗 ,我也遇到同样的问题了,不知道怎么解决

请问解决了吗,我也遇到了一模一样的问题

新手上路,请多包涵

在- (void)viewDidAppear:(BOOL)animated {}这个方法里写上你的代码

新手上路,请多包涵

可以用如下方式解决,我就是这么解决的。

//tableView还没刷新完就开始调用滚到到底部的方法,所以可以利用伪延迟来进行处理。
double delayInSeconds = 0.1;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){

    if ([self.chatModel.dataSource count] > 1){
        // 动画之前先滚动到倒数第二个消息
        [self.chatTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:[self.chatModel.dataSource count] - 2 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:NO];
    }
    //self.chatTableView.hidden = NO;
    NSIndexPath* path = [NSIndexPath indexPathForRow:[self.chatModel.dataSource count] - 1 inSection:0];
    [self.chatTableView scrollToRowAtIndexPath:path atScrollPosition:UITableViewScrollPositionBottom animated:YES];
});
--------------------------
参考:https://stackoverflow.com/questions/21371351/uitableview-not-scrolling-to-bottom
https://stackoverflow.com/questions/25686490/ios-8-auto-cell-height-cant-scroll-to-last-row
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题