¿Hay alguna manera de conseguir el botón de evento click de un botón dentro de un UICollectionViewCell? He utilizado una punta para rellenar la vista de colección, la célula tiene el botón, pero su acción no está recibiendo la llamada. Creo que el problema es con el delegado que se llama. ¿Cómo puedo solucionar este problema?

Cómo he creado :

  1. Añadido un vacío de punta, creó una colección de células
  2. Añadido .h and .m de archivo y de hecho la celda de la plumilla de archivos del propietario como la clase creada
  3. Escribió una acción en la clase.
  4. Conectado el botón de la acción

¿Hay alguna manera de conseguir la acción?
¿Qué estoy haciendo mal?

Tiene la función de FileOwner? Por favor, pruebe a quitar el enlace a la acción y volver a conectarlo.
Editado la pregunta
Solicitud de cierre? Por qué? Ah ok Editado
El propietario del archivo es la punta de la misma clase?
Sí que es.Por eso también me puede conectar la salida de la derecha?

OriginalEl autor Lithu T.V | 2012-12-20

3 Comentarios

  1. 10

    Agregar el botón de acción como esta:

    - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    
        CollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CellId" forIndexPath:[indexPath row]]; 
    
        [[cell myButton] addTarget:self action:@selector(myClickEvent:event:) forControlEvents:UIControlEventTouchUpInside];
    
        return cell;
    
    }
    
    
    - (IBAction)myClickEvent:(id)sender event:(id)event {
    
        NSSet *touches = [event allTouches];
    
        UITouch *touch = [touches anyObject];
    
        CGPoint currentTouchPosition = [touch locationInView:_myCollectionArray];
    
        NSIndexPath *indexPath = [_myCollectionArray indexPathForItemAtPoint: currentTouchPosition];
    
    }
    Este código no es necesario es posible sólo con la Punta.

    OriginalEl autor bloque13

  2. 20

    Es importante que crear la celda en la Punta arrastrando una «Colección de Células» desde el panel de Objetos. Si utiliza un UIView y acaba de cambiar la clase de esta celda de la Identidad del Inspector, a continuación, la acción no va a funcionar.

    Esto fue exactamente mi problema. Me alegro de haber encontrado esta sugerencia.

    OriginalEl autor MacMark

  3. 3

    Aquí es swift 3.1 código

    //make a cell for each cell index path
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    
        //get a reference to our storyboard cell
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! BlueCircleViewCell
    
        //Use the outlet in our custom class to get a reference to the UILabel in the cell
        cell.bgImage.image = UIImage(named: items[indexPath.row])
        cell.addButton.addTarget(self, action: #selector(addCircle(_:)), for: .touchUpInside)
    
    //       cell.backgroundColor = UIColor.cyan //make cell more visible in our example project
    
        return cell
    }
    
    func addCircle(_ sender:UIButton){
        //CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:self.tableView];
        let buttonPosition:CGPoint = sender.convert(.zero, to: self.collectionView)
        let indexPath:IndexPath = self.collectionView.indexPathForItem(at: buttonPosition)!
        onAddBlueCircle(indexPath: indexPath)
    }

    OriginalEl autor TheLastSummer

Dejar respuesta

Please enter your comment!
Please enter your name here