如果json数据为

时间:2017-02-16 09:19:23

标签: ios objective-c swift

如果json数据为零,如何在部分中隐藏单元格集合视图。我在tableview cell.my中加载了集合视图,下面显示了集合视图中的图像数组我已经使用第三方将horizo​​ntalautomatic scroll作为集合视图的第三方

func setCollectionData(_collectionData: [Any]) {
    self.collectionData = _collectionData as NSArray      
    collectionViewObj.setContentOffset(CGPoint(x:0,y:0), animated: true)       
    for i in 0 ..< collectionData.count {
        self.strings = StringClass()
        self.strings.vehicleImage = (collectionData[i] as AnyObject).value(forKey: "img_name") as? String                        
        self.strings.vehicleTitle=(collectionData[i] as AnyObject).value(forKey: "p_name") as? String                  
        self.modelArray.append(self.strings)                        
    }    
    collectionViewObj.reloadData()
}            
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
{
    if self.collectionData.count >= 4 {
        return 4
    }
    else
    {
    return collectionData.count
    }
}    

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
{
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "ProductCollectionViewCustomCell", for: indexPath)as! ProductCollectionViewCustomCell        
    strings = modelArray[indexPath.row]        
    cell.ProductTitleLabel.text =  strings.vehicleTitle        
    let URLBaseString = "http://vehiclebuzzzz.com/"        
    let url = URL(string:URLBaseString .appending(strings.vehicleImage!))        
    let dataurl = try? Data(contentsOf: url!)    
    cell.productImageViewObj.image=UIImage(data: dataurl!)                
    return cell
}

3 个答案:

答案 0 :(得分:0)

func collectionView(_ collectionView: UICollectionView,layout collectionViewLayout: UICollectionViewLayout,sizeForItemAt indexPath: IndexPath) -> CGSize 
如果json数据为nil,则

重写此方法并返回零大小CGSize.zero,否则返回单元格的实际大小

OR

从数组中删除nil数据并调用collectionView.reloadData()

答案 1 :(得分:0)

使用新数据&amp;更新collectionData数组。然后执行collectionViewObj.reloadData()

答案 2 :(得分:0)

- 如果您不想要show collection视图。只需隐藏集合视图,直到获得数据。 - 当数据显示时