背景:
我是一个新开发人员,我不确定要去哪里获得帮助。过去一周,我一直在对此问题进行故障排除,但是我不知道是什么原因引起了问题。这是我的第一篇文章,我想成为一个好会员,所以请让我知道我是否犯了任何错误,我会很乐意纠正它们。
谢谢!
问题:
我正在设置一个有5个部分的NSCollectionView
。有5个按钮将新项目添加到五个部分中,并且有一个按钮可以删除选定的项目。目前,设置了一个按钮。
但是,这些项目似乎在集合视图中没有正确添加或删除。
,如果在启动时没有添加项目,则应用程序会崩溃。
另外,在添加新项目时,它会在集合视图中添加额外的项目。
工作:
我已经通过了几个NSCollectionView
教程,例如raywenderlich.com,ductran.com,youtube视频,中等文章,stackoverflow.com帖子和苹果文档。
以下是一些更有用的链接:
Raywenderlich-第1部分
Raywenderlich-第2部分
Ductran-照片应用
Ductran-新闻应用
苹果 - 文档
我从头到尾都按线进行了调试,从头开始启动了几次,构建了最简单的收集视图,并逐步添加到uicollectionview。
。我渴望学习,但是NSCollectionView
上可用的资源似乎很苗条。
代码:
我不确定问题在哪里,所以我不知道要发布哪个代码。
我已经将应用程序上传到github:link
我认为问题可能发生在deleteItemsAtIndexPaths
。错误的项目被删除,如果所有项目都被删除,则应用程序崩溃:
func deleteItemsAtIndexPaths(_ indexPaths: [IndexPath]) {
var indexes = [Int]()
for indexPath in indexPaths {
indexes.append(absoluteIndexForIndexPath(indexPath))
}
var newWebsites = [Website]()
for (index, website) in websites.enumerated() {
if !indexes.contains(index) {
newWebsites.append(website)
}
}
websites = newWebsites
}
fileprivate func absoluteIndexForIndexPath(_ indexPath: IndexPath) -> Int {
var index = 0
for i in 0 ... (indexPath as NSIndexPath).section {
index += numberOfWebsitesInSection(i)
}
index += (indexPath as NSIndexPath).item
return index
}
添加/删除:
额外/错误的项目与absoluteIndexForIndexPath
有关。它设置为...而不是..<
崩溃:
崩溃与viewForSupplementaryElementOfKind
有关。NSCollectionView
功能需要用于websitesInSection > 0
的if/then
使用5个部分和5个按钮工作NSCollectionView
:链接