无法在 swift 3 中显示表格视图?

Posted

技术标签:

【中文标题】无法在 swift 3 中显示表格视图?【英文标题】:Unable to display table view in swift 3? 【发布时间】:2017-10-05 12:10:32 【问题描述】:

在这里我放置了一个集合视图,在它下面我使用按钮放置了一个表格视图我已经放置了切换到集合视图或表格视图的逻辑,但是数据没有显示在表格视图上,它在收藏视图谁能帮我解决它?

@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!.mapList(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()
    

这是此布局,此处列表按钮位于视图左上角,如图所示

【问题讨论】:

您的表格视图数据源方法是否被调用?如果是,他们会返回什么? 请在数据源方法numberOfRows中设置一个断点,看看它是否正在触发 【参考方案1】:

尝试在 listViewAction 上重新加载数据并使用 isHidden 来显示和隐藏

@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
                )
            
        

【讨论】:

以上是关于无法在 swift 3 中显示表格视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 swift 3 中的表格视图中显示数据?

swift:来自firebase的照片未显示在表格视图中

表格视图单元格中的滚动视图将无法正确显示图像,并且在 swift 4 中的分页模式下有一个额外的页面

如何在swift 3分页期间在表格视图中显示所有数据?

静态表格视图中单元格的内容未显示 SWIFT 3

Swift - 表视图未填充数据但未显示错误