我创建了一个简单的collectionView并设置单元格以显示每个单元格在单击时进入的屏幕预览。这一切都很好,所以我正在向每个部分添加标题。
然而,这是问题......
当我将这些部分添加到代码中时,它导致collectionView消失(或者至少它除了显示白屏外没有显示任何其他内容)
这是我添加(或修改)的代码,如果没有足够的代码发布,请告诉我,我会发布更多...
override func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView {
let sectionHeaderView = collectionView.dequeueReusableSupplementaryViewOfKind(kind, withReuseIdentifier: "SectionHeader", forIndexPath: indexPath) as! SectionHeaderView
if let title = papersDataSource.titleForSectionAtIndexPath(indexPath) {
sectionHeaderView.title = title
}
return sectionHeaderView
}
override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
return papersDataSource.numberOfSections
}
override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return papersDataSource.numberOfPapersInSection(section)
}
我设置了一个UICollectionReusableView的子类,其中包含以下代码......
import UIKit
class SectionHeaderView: UICollectionReusableView {
@IBOutlet weak var titleLabel: UILabel!
var title: String? {
didSet {
titleLabel.text = title
}
}
}
一切都很好,但显示完全空白。
有什么想法吗?
答案 0 :(得分:0)
在确定上面发布的所有代码都是正确的之后,我决定更好地查看dataSource文件,其中设置并加载了所有数据。在四处寻找时,我发现导致问题的是什么,这是将数据加载到光盘的方法......
private func loadPapersFromDisk() -> [Paper] {
sections.removeAll(keepCapacity: false)
if let path = NSBundle.mainBundle().pathForResource("Papers", ofType: "plist") {
if let dictArray = NSArray(contentsOfFile: path) {
var papers: [Paper] = []
for item in dictArray {
if let dict = item as? NSDictionary {
let caption = dict["caption"] as! String
let imageName = dict["imageName"] as! String
let section = dict["section"] as! String
let index = dict["index"] as! Int
let paper = Paper(caption: caption, imageName: imageName, section: section, index: index)
if !sections.contains(section) {
sections.append(section)
}
papers.append(paper)
}
}
return papers
}
}
return []
}
具体来说,问题出在附录中。在看起来像......之前,这些部分必须打开包装。
if sections.contains(section) {
sections.append(section)
}