2016-08-09 2 views
0

J'ai un UIRefreshControl ajouté sur mon UITableView. Cela fonctionne bien lorsque l'écran est chargé pour la première fois. À partir de la deuxième fois, à chaque fois que j'appelle beginRefreshing dans viewWillAppear, l'en-tête de la vue de table reste bloqué et le contrôle de rafraîchissement n'apparaît pas. enter image description hereUIRefreshcontrol - La vue d'en-tête UItableview est bloquée et refreshview ne montre pas

Quel pourrait être le problème?

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

Pouvez-vous ajouter le code? –

+0

S'il vous plaît vérifier que j'ai mis à jour la question avec le code. –

Répondre

0

j'ai eu la question. J'appelais par programmation essayant de commencer à actualiser, mais j'ai trouvé sur Here que je dois faire défiler la vue de la table en changeant contentoffset.