Ios 在UITableview中平滑滚动以显示聊天历史记录

Ios 在UITableview中平滑滚动以显示聊天历史记录,ios,objective-c,swift,uitableview,uiscrollview,Ios,Objective C,Swift,Uitableview,Uiscrollview,我正在开发聊天应用程序。我有一个视图控制器,可以在tableview中显示消息。在选择一个特定的聊天时,我将获取12条最近的消息&重新加载表格并将其滚动到底部,以便用户可以看到最近的消息(索引11)。 当用户开始向上滚动时(当他达到第0个索引时),我需要通过web服务获取历史记录,并以相同的顺序在UI上平滑地显示它 用于显示单元格的代码 cell = STBubbleTableViewCell.init(style: .Subtitle, reuseIdentifier: cellIdentif

我正在开发聊天应用程序。我有一个视图控制器,可以在tableview中显示消息。在选择一个特定的聊天时,我将获取12条最近的消息&重新加载表格并将其滚动到底部,以便用户可以看到最近的消息(索引11)。 当用户开始向上滚动时(当他达到第0个索引时),我需要通过web服务获取历史记录,并以相同的顺序在UI上平滑地显示它

用于显示单元格的代码

cell = STBubbleTableViewCell.init(style: .Subtitle, reuseIdentifier: cellIdentifier)
cell.backgroundColor = self.chatTableView?.backgroundColor
cell.selectionStyle = .None
cell.dataSource = self
cell.delegate = self

let chat = chatMessages[indexPath.row]

cell.textLabel?.font = UIFont.systemFontOfSize(14.0)
cell.textLabel?.text = chat.message
if(self.isGroupChat)
{
    cell.detailTextLabel?.text = NSString.init(format: "%@ %@", chat.authorName, chat.messageDate.toShortTimeString()) as String
}
else
{
    cell.detailTextLabel?.text = chat.messageDate.toShortTimeString()
}

cell.authorType = chat.authorType == 0 ? AuthorType.STBubbleTableViewCellAuthorTypeSelf : AuthorType.STBubbleTableViewCellAuthorTypeOther

cell.bubbleColor = chat.bubbleType == 0 ? BubbleColor.STBubbleTableViewCellBubbleColorGreen : BubbleColor.STBubbleTableViewCellBubbleColorGray
获取聊天记录的代码

func scrollViewWillBeginDragging(scrollView: UIScrollView) {

    pointNow = scrollView.contentOffset
}

func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) {

    if (scrollView.contentOffset.y < pointNow.y)
    {
        self.fetchChatHistory()
    }
}
func scrollView将开始拖动(scrollView:UIScrollView){
pointNow=scrollView.contentOffset
}
func ScrollViewDiEndDraging(scrollView:UIScrollView,将减速减速:Bool){
if(scrollView.contentOffset.y

正在多次调用self.fetchathistory。如何避免这种多次调用?

使用ScrollViewWillBeginDraging和ScrollViewDiEndDraging调用,可以在每个滚动上调用抓取,无论用户是否到达表的末尾。 相反,您需要实现tableview无限滚动:


看一看:

你检查过了吗?我没有使用JSQMessageViewController。我已使用STTableviewCell在我的tableview中显示消息。您试图通过ScrollViewWillBeginDraging和ScrollViewDiEndDraging调用获取什么?我正在调用web服务并获取聊天历史记录