我正在尝试解析Json并将其显示为表视图单元格内的集合视图项。所以层次结构就像:
MainTableVIew - > TableViewCell - > CollectionView - > CollectionViewCell
所以我有了json
"payments":[{
"type":"card",
"title":"Card"
}, {
"type":"sms",
"title":"SMS",
"max_amount":24
},{
"type":"account",
"title":"Account",
"disabled":true,
"max_amount":-1
}]
我解析了它。 我做的下一件事是
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "NewPaymentCell") as! NewPaymentTableViewCell
cell.package?.title = payments[indexPath.row].title
return cell}
哪个包
var package : PromoPayment? {
didSet {
collectionView.reloadData()
}
}
和PromoPayment我得到字典的类。
在NewPaymentCollectionView类中,我也填充单元格:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "NewPaymentCollectionCell", for: indexPath) as! NewPaymentCollectionViewCell
cell.paymentIcon.image = UIImage(named: iconImage[indexPath.row])
cell.kidPayment?.title = (package?.title)!
return cell
}
其中kidPayment是
var kidPayment : PromoPayment? {
didSet{
namePaymentTypeLabel.text = kidPayment?.title
}
}
并在课程NewPaymentCollectionViewCell: UICollectionViewCell
当我调试它时返回我的nil ..
感谢您的帮助。
答案 0 :(得分:0)
您可以尝试这个,设计tableview的自定义单元格并在其中添加集合视图。为集合视图创建一个出口,并尝试按照给定的代码重新加载集合视图。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "NewPaymentCell") as! NewPaymentTableViewCell
cell.package?.title = payments[indexPath.row].title
**cell.collectionView.reloadData()**
return cell
}
不使用didset方法,而是使用它。