在tableview中数据是覆盖

时间:2016-09-02 05:22:50

标签: ios swift uitableview uicollectionview

我有两个collectionView。一个是主要的,第二个是子项目 当我单击两个collectionView时,数据将添加到tableView

我的要求就像当我点击第一个collectionView时,它会被添加到购物车中,tableViewCell应该显示我从网络服务中检索的原始价格。

现在,当我点击第二个collectionView时,它也应该添加到tableview,但是当我点击它时,它必须显示价格为0。 要添加到tableview中,我使用了collectionView的选择方法:

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
    let  dictSub = arr[indexPath.row] as! [String : AnyObject]
    //to insert product to top of tableview
    arrTable(dictSub, atIndex: 0)
    self.tbl.reloadData()
}

cellForRowAtIndexPath方法时,我检查isMainProduct是否等于1或0

代码:

if  isFromMain == "1" {
    let Price   = NSString(string: pPrice1).floatValue
    let total   = 1 * Price
    cell.lbl.text = String(format: "%.2f", total)
} else {
    let Price   = 0.00
    let total   = 1 * Price
    cell.lbl.text = String(format: "%.2f", total)
}

当它增加原价时,但当它不是来自主产品时,它将显示零。

问题是:

首先,当我点击主要收藏时,显示原始价格,但是当我点击子商品时,主要商品的价格也会变为零。

我想阻止此数据覆盖。

1 个答案:

答案 0 :(得分:1)

didSelectItemAtIndexPathDictionary添加ArrayDictionary,您可以使用此isFromMain来区分它是否来自main collectionView而不是设置实例值1func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { var dictSub = arr[indexPath.row] as! [String : AnyObject] if collectionView == mainCollectionView { dictSub["isFromMain"] = "1" } else { dictSub["isFromMain"] = "0" } arrTable(dictSub, atIndex: 0) self.tbl.reloadData() }

cellForRowAtIndexPath

现在使用此密钥在CollectionView中检查它是来自主let dic = arrTable[indexPath.row] as! [String : AnyObject] let isFromMain = dic["isFromMain"] as! String if isFromMain == "1" { let Price = NSString(string: pPrice1).floatValue let total = 1 * Price cell.lbl.text = String(format: "%.2f", total) } else { let Price = 0.00 let total = 1 * Price cell.lbl.text = String(format: "%.2f", total) } 还是来自第二个。

{{1}}