我试图通过不同的XIB创建一个单元格。很自然地,我试过了:
let cell = tableView.dequeueReusableCellWithIdentifier("cellChapter", forIndexPath: indexPath) as! UniversalXIB
if let subStackTitre = NSBundle.mainBundle().loadNibNamed("titreSection", owner: self, options: nil).first as? TitreXIB {
cell.stackChapter.addArrangedSubview(subStackTitre)
subStackTitre.titreOulet.text = "pouet n°\(indexPath.row)"
}
if let subStackIcones = NSBundle.mainBundle().loadNibNamed("iconesStack", owner: self, options: nil).first as? IconesXIB {
cell.stackChapter.addArrangedSubview(subStackIcones)
}
if let photoChapterImage = NSBundle.mainBundle().loadNibNamed("photoAvecLegende", owner: self, options: nil).first as? PhotoAvecLegendeXIB {
cell.stackChapter.addArrangedSubview(photoChapterImage)
}
然而,每当我滚动时,它会再次添加笔尖,而不是之前的笔尖。我很确定addArrangedSubview在这里很有罪,但我完全不知道另一种方法......诀窍是,我还要添加这个:
for i in texteArray {
let titreBool = i["titre"] as! Bool
let photoBool = i["photo"] as! Bool
if titreBool == true && photoBool == false {
if let ChapitreTitre = NSBundle.mainBundle().loadNibNamed("chapitreTitre", owner: self, options: nil).first as? ChapitreTitre {
cell.stackChapter.addArrangedSubview(ChapitreTitre)
}
} else if titreBool == false && photoBool == false {
if let ChapitreSansTitre = NSBundle.mainBundle().loadNibNamed("chapitreSansTitre", owner: self, options: nil).first as? ChapitreSansTitre {
cell.stackChapter.addArrangedSubview(ChapitreSansTitre)
}
} else if titreBool == true && photoBool == true {
if let ChapitreTitrePhoto = NSBundle.mainBundle().loadNibNamed("chapitreTitrePhoto", owner: self, options: nil).first as? ChapitreTitrePhoto {
cell.stackChapter.addArrangedSubview(ChapitreTitrePhoto)
}
} else if titreBool == false && photoBool == true {
if let ChapitreSansTitrePhoto = NSBundle.mainBundle().loadNibNamed("chapitreSansTitrePhoto", owner: self, options: nil).first as? ChapitreSansTitrePhoto {
cell.stackChapter.addArrangedSubview(ChapitreSansTitrePhoto)
}
}
}
因此,如果我的数组中有5个元素,则必须根据两个bool创建5个元素。如果我有2千个,它将创建2个thousans章节。
关于如何进行的任何想法?或者我做错了什么?