TableView上拉刷新,下拉加载

2017-10-16  本文已影响0人  lalala1112389

1 TableView进行刷新

    func firestTableRefresh() {
      self.firstTableview.mj_header.beginRefreshing()
      requestData(items: [0])
  }
2 调用刷新加载的方法
 let secondHeader = MJRefreshNormalHeader(refreshingTarget:       self,refreshingAction: #selector(secondTableRefresh))
      secondHeader?.lastUpdatedTimeLabel.isHidden = true
      secondHeader?.setTitle(mjHeaderIdle, for: .idle)
      secondHeader?.setTitle(mjHeaderPulling, for: .pulling)
      secondHeader?.setTitle(mjHeaderRefreshing, for: .refreshing)
      self.secondTableView.mj_header = secondHeader

3 在requestDeta 的方法里
  主线程刷新UI
 1 .先查询本地,进行刷新
   DispatchQueue.main.async {
    if (self?.firstTableview.mj_header.isRefreshing())! {
              self?.firstTableview.mj_header.endRefreshing()
        }
            self!.firstTableview.reloadData()
         }
4.网络请求,进行刷新
 4.1先查询本地,进行刷新
   DispatchQueue.main.async {
    if (self?.firstTableview.mj_header.isRefreshing())! {
              self?.firstTableview.mj_header.endRefreshing()
        }
            self!.firstTableview.reloadData()
         }
4.2进行网络请求 
 DispatchQueue.main.async {
    if (self?.firstTableview.mj_header.isRefreshing())! {
              self?.firstTableview.mj_header.endRefreshing()
        }
            self!.firstTableview.reloadData()
         }
5 下拉加载
func firestTableLoadMore() {
      self.firstTableview.mj_footer.beginRefreshing()
     // requestData(items: <#T##Array<Int>#>)
      pullRequestData(0, self.newsFirstPageIndex+1, self.newsFirstPagesize)
  }
在pullRequestData 中 开辟主线程
   DispatchQueue.main.async {
                          if (self?.firstTableview.mj_footer.isRefreshing())! {
                              self?.firstTableview.mj_footer.endRefreshing()
                          }
            }
上一篇 下一篇

猜你喜欢

热点阅读