web-dev-qa-db-fra.com

Swift a mis plusieurs IBOutlets dans un tableau

Multiple IBOutlets

J'ai fait ces IBOutlets (marqués d'une bordure rouge) en utilisant ctrl + drag

Mais je n'aime pas avoir exactement la même ligne 9 fois (DRY)

Comment puis-je mettre ces IBOutlets dans un tableau?

26
CorPruijs

vous pouvez définir une collection générique de points de vente dans Swift comme ceci:

@IBOutlet var collectionOfViews: Array<UIView>? // = [UIView]?

ou pour par exemple UIButton objets:

@IBOutlet var collectionOfButtons: Array<UIButton>? // = [UIButton]?

vous pouvez trouver vos collections dans le groupe Outlet Collections comme c'est habituellement le cas dans le fichier Propriétaire du fichier :

Outlet Collections

il aurait l'air sur ma console après avoir connecté 5 boutons aléatoires:

Connected UIButton instances to Collection

37
holex

Suivez ces étapes pour créer un tableau de points de vente et le connecter avec les éléments IB:

  • Créer un tableau d'IBOutlets
  • Ajouter plusieurs UIElements (vues) dans votre interface Storyboard ViewController
  • Sélectionnez ViewController (dans le storyboard) et ouvrez l'inspecteur de connexion.
  • Il y a une option 'Collections de points de vente' dans l'inspecteur de connexion (vous y verrez un tableau de points de vente)
  • Connectez si avec vos éléments d'interface

-

class ViewController2: UIViewController {


    @IBOutlet var collection:[UIView]!


    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

enter image description here

17
Krunal

Solution ici Swift - Equivalent IBOutletCollection

@IBOutlet var objectCollection: [Object]

1
hannesr

Commencez par le volet d'affichage où vous voyez à la fois votre code et le storyboard. Lorsque vous établissez votre première connexion IBOutlet de l'interface utilisateur à votre code, il suffit de regarder attentivement le champ déroulant Connexion et de sélectionner l'option appelée "Collection de prises". Cela créera automatiquement un tableau d'IBOutlets. Ensuite, cherchez le petit cercle noir dans un cercle qui est placé dans votre code où le tableau est créé. Faites simplement glisser de ce cercle tous les autres objets d'interface utilisateur que vous souhaitez connecter à cette même collection (vous ne savez pas si vous pouvez mélanger des types). De même, vous pouvez connecter tous les objets à une action en faisant glisser le premier point noir créé vers tous les autres objets que vous souhaitez relier à cette action. Pensez également à EnumerateSequence () pour vous aider à utiliser cette collection. Doux droit?

0
Mark Ebert