如何添加"添加" iOS中可见集合视图末尾的按钮

时间:2015-01-13 09:15:07

标签: ios uibutton uicollectionview

我正在尝试在我的收藏夹视图(文件夹)的末尾添加一个按钮来添加新单元格(文件夹)。目标是始终在最后添加一个按钮来添加新单元格(文件夹)。

这是我正在做的事情: 1,我返回项目数+ 1(要有一个额外的单元格用作按钮..)

    override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    //#warning Incomplete method implementation -- Return the number of items in the section
    let sections = self.ICEFolderFetchedResultsController!.sections
    let sectionInfo: NSFetchedResultsSectionInfo = sections![section] as NSFetchedResultsSectionInfo
    println("ICEFoldersCVC - numberOfItems: left")
    return sectionInfo.numberOfObjects + 1
}

第二次我尝试初始化此方法中的按钮:

    override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    var cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifierFolderCell, forIndexPath: indexPath) as ICEFolderCell
    var numberOfItems = self.collectionView(self.ICEFolderCollectionView, numberOfItemsInSection: 0)
    println("index path row is: \(indexPath.row)")
    println("number of items is: \(numberOfItems-1)")
    if (indexPath.row == numberOfItems - 1) {
        println("initializing button!")
        var addCellButton = UIButton(frame: cell.frame)
        addCellButton.setTitle("Add", forState: UIControlState.Normal)
        addCellButton.addTarget(self, action: "addCellButtonPressed", forControlEvents: UIControlEvents.TouchUpInside)
        cell.addSubview(addCellButton)
    }

    println("ICEFoldersCVC - cellForItemAtIndexPath: left")
    return cell
}

第三次我像这样实现了选择器:

    func addCellButtonPressed() {
    UIAlertView(title: "you did it!", message: "Add button was pressed :)", delegate: nil, cancelButtonTitle: "Great!")
}

但这个从未打过电话,因为我从未看过警报视图...

结果是一个单元格(因为在持久性存储中没有添加数据)无法触及。当我触摸牢房时没有任何事情发生。这是一个截图......等待......不够声名..我希望我能......吵架...

我需要一些指导来使按钮工作......我很感激! 最好的。

2 个答案:

答案 0 :(得分:1)

您似乎忘记在提醒时致电show

另外,不是为目标使用实现按钮和方法:

optional func collectionView(_ collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath)

如果索引路径来自您的上一个单元格,则显示警告。

答案 1 :(得分:0)

尝试以下步骤

1)另外我在UIalertView上找不到任何show方法。所以写下来

2)总是在addCellButtonPressed中写一些额外的简单日志来检查该方法是否实际被调用。

我没有使用过swift但有使用objectiveC的经验。希望它会对你有所帮助。