2017-10-05 2 views
2

Hier hatte ich eine Kollektionsansicht platziert und darunter hatte ich eine Tabellenansicht platziert, indem ich die Logik verwendet hatte, um zur Sammlungsansicht oder Tabellenansicht zu wechseln, aber die Daten wurden nicht in der Tabellenansicht angezeigt und es wurde in Sammlung angezeigt kann mir jemand helfen, wie ich es lösen kann?Kann die Tabellenansicht in swift 3 nicht angezeigt werden?

@IBAction func listViewAction(_ sender: Any) { 
     if (a == 0){ 
      UIView.animate(withDuration: 0.3, animations: { 
       self.listButton.setImage(UIImage(named: "Thumbnails"), for: .normal) 
       self.tableView.delegate = self 
       self.tableView.dataSource = self 
       self.collectionView.alpha = 0.0 
       self.tableView.alpha = 100.0 
       self.a = 1 

      }) 
     } 
     else{ 
      UIView.animate(withDuration: 0.3, animations: { 
       self.listButton.setImage(UIImage(named: "link"), for: .normal) 
       self.collectionView.alpha = 1.0 
       self.tableView.alpha = 0.0 
       self.a = 0 
      }) 
     } 
    } 


func listCategoryDownloadJsonWithURL() { 
     let url = URL(string: listPageUrl)! 
     let task = URLSession.shared.dataTask(with: url) { (data, response, error) in 
      if error != nil { print(error!); return } 
      do { 
       if let jsonObj = try JSONSerialization.jsonObject(with: data!) as? [String:Any] { 
        let objArr = jsonObj["items"] as? [[String:Any]] 
        self.list = objArr!.map{List(dict: $0)} 
        DispatchQueue.main.async { 
         let itemsCount = self.list.count 
         for i in 0..<itemsCount { 
          let customAttribute = self.list[i].customAttribute 
          for j in 0..<customAttribute.count { 
           if customAttribute[j].attributeCode == "image" { 
            let baseUrl = "http://192.168.1.11/magento2/pub/media/catalog/product" 
            self.listCategoryImageArray.append(baseUrl + customAttribute[j].value) 
           } 
          } 
         } 
         self.activityIndicator.stopAnimating() 
         self.activityIndicator.hidesWhenStopped = true 
         self.collectionView.reloadData() 
         self.collectionView.isHidden = false 
         self.tableView.reloadData() 
        } 
       } 
      } catch { 
       print(error) 
      } 
     } 
     task.resume() 
    } 

Hier ist das Layout für diese und hier Liste Knopf ist oben links zu sehen, wie in Bild

enter image description here

+0

Werden Ihre Tabellenansichtsdatenquellenmethoden aufgerufen? Wenn ja, was kommen sie zurück? –

+0

Bitte geben Sie einen Haltepunkt in der Datenquellenmethode 'numberOfRows' an und sehen Sie, ob er ausgelöst wird –

Antwort

1

Versuchen gezeigt Daten auf listViewAction neu zu laden und isHidden und verstecken zu zeigen, verwenden

@IBAction func listViewAction(_ sender: Any) { 
      if (a == 0){ 
       UIView.animate(withDuration: 0.3, animations: { 
        self.listButton.setImage(UIImage(named: "Thumbnails"), for: .normal) 
        self.tableView.delegate = self 
        self.tableView.dataSource = self 
        self.collectionView.alpha = 0.0 
        self.tableView.alpha = 1 
        self.tableView.isHidden = false 
        self.collectionView.isHidden = true 
        self.a = 1 
        self.tableView.reloadData() 

       }) 
      } 
      else{ 
       UIView.animate(withDuration: 0.3, animations: { 
        self.listButton.setImage(UIImage(named: "link"), for: .normal) 
        self.collectionView.alpha = 1.0 
        self.tableView.alpha = 0.0 
        self.tableView.isHidden = false 
        self.collectionView.isHidden = true 
        self.collectionView.reloadData() 
        self.a = 0 
       }) 
      } 
     } 
Verwandte Themen