我有两个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)
}
当它增加原价时,但当它不是来自主产品时,它将显示零。
问题是:
首先,当我点击主要收藏时,显示原始价格,但是当我点击子商品时,主要商品的价格也会变为零。
我想阻止此数据覆盖。
答案 0 :(得分:1)
在didSelectItemAtIndexPath
中Dictionary
添加Array
到Dictionary
,您可以使用此isFromMain
来区分它是否来自main collectionView而不是设置实例值1
至func 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}}