如何在Swift中向Collection View Cell添加删除按钮?

Jus*_*wis 4 ios uicollectionview uicollectionviewcell swift

现在我有一个滚动用户名列表,使用按钮的集合视图.但我想为每一行添加重叠的删除按钮.它们需要附加到名称按钮并随之滚动.

如何将这些按钮添加到CollectionView?(另外我想跳过第一行的删除按钮,原因很明显)

用户选择屏幕

现行代码:

  //Add the cells to collection
  func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    let cell: UsernameCollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! UsernameCollectionViewCell
    cell.usernameLabel.text = userNames [indexPath.row]
    return cell
  }

  //Upon Selecting an item
  func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {

    if (indexPath.row == 0){
      self.performSegueWithIdentifier("newUserSegue", sender: self)
    }
    else {
      sendData(userNames[indexPath.row])
      self.dismissViewControllerAnimated(true, completion: nil)
    }

  }
Run Code Online (Sandbox Code Playgroud)

Jus*_*wis 14

搞定了!这是如何做:

  1. 我在故事板中为单元格添加了一个按钮.
  2. 连接到UICollectionViewCell类的插座.
  3. 编辑视图控制器代码:

    func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    
      let cell: UsernameCollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! UsernameCollectionViewCell
    
      cell.usernameLabel.text = userNames [indexPath.row]
    
      cell.deleteButton?.layer.setValue(indexPath.row, forKey: "index")
      cell.deleteButton?.addTarget(self, action: "deleteUser:", forControlEvents: UIControlEvents.TouchUpInside)
    
      // Remove the button from the first cell
      if (indexPath.row == 0){
        var close : UIButton = cell.viewWithTag(11) as! UIButton
        close.hidden = true
      }
    
      return cell
    }
    
    func deleteUser(sender:UIButton) {
    
      let i : Int = (sender.layer.valueForKey("index")) as! Int
      userNames.removeAtIndex(i)
      UserSelectCollection.reloadData()
    }
    
    Run Code Online (Sandbox Code Playgroud)

非常感谢JigarM在GitHub上的例子:https: //github.com/JigarM/UICollectionView-Swift