Ahora tengo una lista de desplazamiento de los nombres de usuario utilizando una Colección de botones. Pero me gustaría añadir superposición de eliminar botones para cada fila. Ellos me necesitan estar conectados a la nombre de los botones y para desplazarse con ellos.

¿Cómo puedo agregar estos botones para mi CollectionView?
(También me gustaría omitir el botón eliminar en la primera fila por razones obvias)

Cómo agregar un botón de borrar a la Vista de Colección de Células en Swift?

Código Actual:

  //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)
    }

  }

OriginalEl autor Justin Lewis | 2015-04-13

2 Comentarios

  1. 14

    Tengo trabajo! He aquí cómo:

    1. He añadido un botón de la célula en el Guión gráfico.
    2. Conectado a una toma de corriente para la UICollectionViewCell clase.
    3. Editado ver el código de controlador:

      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()
      }

    Muchas gracias a JigarM para sus ejemplos en GitHub:
    https://github.com/JigarM/UICollectionView-Swift

    ¿Qué es UserSelectCollection?
    UserSelectCollection es más probable es que su colección de vista de la toma de corriente.
    Hey yo había añadido el addTarget método, pero muestra un error de «el Valor de tipo ‘UILabel’ no tiene ningún miembro ‘addTarget'» cualquier forma alternativa de hacer @Justin Lewis
    Hola amigos, me Puede sugerir cómo agregar el botón eliminar de la programación en vista de colección?

    OriginalEl autor Justin Lewis

  2. 1

    ¿Por qué no crear personalizado UICollectionViewCell en IB y solo botón agregar a esto ?
    Registrar a su collectionView con :

    - registerNib:forCellReuseIdentifier:

    Puede utilizar delegado o notificación al proceso de botón tap.

    OriginalEl autor CryingHippo

Dejar respuesta

Please enter your comment!
Please enter your name here