2016-08-09 34 views
0

Ich habe eine UIRefreshControl auf meiner UITableView hinzugefügt. Es funktioniert gut, wenn der Bildschirm zum ersten Mal geladen wird. Ab dem zweiten Mal, wenn ich beginRefreshing in viewWillAppear rufe, dann bleibt der Header der Tabellenansicht stecken und auch das Refresh-Steuerelement wird nicht angezeigt. enter image description hereUIRefreshcontrol - UItableview Header-Ansicht ist stecken geblieben und refreshview zeigt nicht

Was könnte das Problem sein?

override func ViewDidLoad(){ 

    refreshControl.addTarget(self, action: #selector(PlacesViewController.pullToRefresh), forControlEvents: .ValueChanged) 
    tableView.addSubview(refreshControl) 
    tableView.tableFooterView = UIView() 
    self.tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 110, right: 0) 

     FetchExtPlaceList([:],inBackground:inBackground) 

}

func FetchExtPlaceList(pramrDisc:parameter,inBackground:Bool){ 

    if !inBackground{ 
     ActivityManager.ManageActivityView(self, action: .ActionAdd) 
    }else if pageNumber == 1 { 
     self.refreshControl.beginRefreshing() 

    } 


    WSRequest.SendRequest(WSMethod.POST, pramrDisc: pramrDisc, paramsString: nil, operation: WSOperation.FetchExtPlaceList, completionHandler: { response in 

     if !inBackground{ 
      ActivityManager.ManageActivityView(self, action: .ActionRemove) 
     } 

     if let errorTitle = response.errorTitle { 

      if let errorDescription = response.errorDescription { 
       UIAlertController.ShowAlert(errorTitle, message: errorDescription) 
      } 

     }else if let wsError = response.wsError { 

      if let infoMessage = wsError.infoMessage { 
       UIAlertController.ShowAlert("", message: infoMessage) 
      }else if let errorMessage = wsError.errorMessage { 
       UIAlertController.ShowAlert("", message: errorMessage) 
      }else if let error = wsError.error { 
       UIAlertController.ShowAlert("", message: error.description) 
      } 

     }else{ 

      if let places = response.parsedObject as? [Place]{ 

       if self.pageNumber == 1 { 
        self.places.removeAll() 
       } 

       self.places.appendContentsOf(places) 
       self.tableView.reloadData() 
      } 

     } 

     if self.refreshControl.refreshing{ 
      self.refreshControl.endRefreshing() 
     } 
    }) 
} 
+0

Können Sie den Code hinzufügen? –

+0

Bitte überprüfen Sie, ob ich die Frage mit Code aktualisiert habe. –

Antwort

0

habe ich das Problem. ich rief programmatisch an und versuchte, mit der Aktualisierung zu beginnen, aber ich fand auf Here, dass ich die Tabellenansicht durch Änderung von contentoffset crollen muss.