2017-10-18 162 views
1

我正在开发聊天应用程序。在我的应用程序加载早期的消息功能实施,这是不光滑和准确像whatsapp早期加载平滑滚动

我使用UITableview聊天使用

func scrollViewDidScroll(_ scrollView: UIScrollView) { 

    if scrollView.contentOffset.y >= 0 && scrollView.contentOffset.y <= 50{ 
     print(" scrollViewDidScroll Load Earlier start- \(Utils.stringFromNSDate(Date(), inMillisec: true, useUTC: true)!)") 
     if !self.messageFetcher.isHideLoadMoreDisplay{ 
      if self.messageFetcher.arrayOfallChatMessagesData.count > 0 && !isCheckLoading{ 
       self.isCheckLoading = true 
       let message = self.messageFetcher.arrayOfallChatMessagesData[0] 
       self.messageIdForMessageDisplay = (message.chatMessageId) 
       self.loadMoreDataLoad(threadId: self.messageFetcher.chatThreadId, isloadFromServer: false) 
      } 
     } 
     print(" scrollViewDidScroll Load Earlier end- \(Utils.stringFromNSDate(Date(), inMillisec: true, useUTC: true)!)") 
    } 
} 

所以,这是更好的方式与平滑一样喜欢whatspp应用较早实现负载上市获取更多的数据。

+0

loadMoreDataLoad将调用web服务加载图像?获取数据 –

+0

获取表单本地数据库.. –

+0

您应该在分页的情况下将数据加载到'cellForRow'中请显示'loadMoreDataLoad'方法 –

回答

0

您应该始终在CellForWowatIndexpath方法中加载数据,并且在显示最后一个单元格时还使用分页和加载更多数据。您可以在cellWillDisplay方法上调用加载更多方法。最后但并非最不重要的,如果要加载图像使用SDWebimage使滚动变得光滑

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 

    // load dats here 



    return cell 
} 

重新加载数据时,最后一个单元格是可见的

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { 
    let lastItem = self.YourArray.count - 1 

     if indexPath.row == lastItem 
     { 
      //call load more data method 
     } 

    else{ 
     return 
    } 
} 
+0

Thanx分享..但我想从顶部的Whatsapp应用程序实施.. –