0
votes

Animer une ligne sélectionnée sur le bouton TAP

J'ai actuellement une table avec une cellule personnalisée contenant un bouton et une étiquette. Tout fonctionne bien, l'étiquette affiche le nom du produit et le bouton répond à un bouton Tapot.

Ce que je voudrais pouvoir faire est d'animer la largeur de la ligne / cellule où le bouton a été tamponné.

Voici le code que j'ai actuellement ...

ViewController principal: xxx

personnalisé Cellule xxx

vue de table

 Entrez la description de l'image ici

Comment puis-je animer la largeur de la ligne où le bouton a été taraudé?


0 commentaires

3 Réponses :


1
votes

Je recommanderais à:

  1. Créez Sous-View, appelons-le "resizeablecontentview"
  2. Ajouter "resizeablecontentviet" en tant qu'enfant à "contentView" de Cell
  3. Ajoutez vos vues à "resizeablecontview" comme enfant
  4. SET .CLEARCOLOR pour la couleur de la cellule et "contentView" Couleur de fond si nécessaire
  5. Ensemble de largeur pour "resizeablecontentview" par action
  6. N'oubliez pas la cellule de réinitialisation quand elle est réutilisée

0 commentaires

1
votes

Vous pouvez essayer ce code de chaudière:

cell.buttonAction = { sender in
            UIView.animate(withDuration: 0.5) {
                cell.frame = CGRect(x: 0, y: 0, width: 150, height: 50)
            }
        }


3 commentaires

@ Cagri Colak - mais comment puis-je obtenir la ligne sélectionnée dans la méthode Cellforport IndustryPath: ? J'ai besoin de savoir quelle ligne a été exploitée.


Comme ceci: FUNC TABLEVIEW (_ TableView: UitailView, DidSelectrowat IndustryPath: IndexPath) {UIView.Animate (Withurary: 0.5) {TableView.Cellforfor (AT: IndexPath) ?. Cadre = CGRECRE (X: 0, Y: 0, Largeur: 150, Hauteur: 50)}}


Mais je ne tape pas directement la ligne, j'ai un bouton à l'intérieur de la cellule qui sera taraudée. Voir, Lorenzoliveto S solution.



1
votes

vous pouvez sous-classe uibutton cod> et ajouter une propriété index code> où vous pouvez stocker l'index représenté pour le bouton: xxx pré>

alors que vous devrait utiliser cette classe dans le storyboard à la place uibutton code>. p>

Après cela ajoutez le bouton sous forme de sortie dans votre cellule et connectez-vous dans l'interface Builder. P>

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "reusableCell", for: indexPath) as! CustomCell

    let data = items[indexPath.row]

    cell.displayProductName.text = data.productName

    cell.button.representedIndex = indexPath.item
    cell.buttonAction = { sender in
        print("Button tapped... \(sender.representedIndex)")
    }

    return cell
}


3 commentaires

Je vais essayer cela un essai et vous le faire savoir. Question rapide Thoug, où est-ce que article vient? Merci.


C'est la même chose que indexpath.row Stackoverflow.com/questions/ 14765730 / ...


Cela a fonctionné, merci beaucoup !. FYI - Voici comment j'ai récupéré la cellule ... let