Domanda

Ho una visualizzazione dell'elenco in alto nella mia attuale app per iPhone, popolata da codice.Ho assemblato la vista utilizzando Interface Builder, quindi ne contiene molti UILabelS.

Ovviamente non mi piacerebbe averlo name1, name2, eccetera.punti vendita nella mia classe, ma preferisco a name[10] vettore.

È possibile farlo e collegare ciascun elemento all'etichetta appropriata (o qualsiasi altro generatore di interfacce come la vista)?

È stato utile?

Soluzione

Non si può fare in IB, ma è possibile creare un array nel metodo init e aggiungere tutte le etichette ad esso.

A proposito, è possibile impostare alcuni tag per ogni etichetta e definire macro per accedervi. smth come

#define NAME[TAG] (UILabel*)[self.view viewWithTag:TAG]

Altri suggerimenti

Ovviamente si può fare questo con la creazione di interfacce, la parola chiave è IBOutletCollection. Ciò che fa è fondamentalmente un NSArray di prese multiple Interface Builder.

IBOutletCollection(UILabel) NSArray *myLabels;

Quindi, la prossima cosa sarebbe collegare le etichette in Interface Builder e quindi è possibile utilizzare la matrice per accedere a tutte le etichette in fase di esecuzione.

Questo può essere fatto utilizzando collezioni di uscita, vedere questa domanda relativa .

Seguire questi passaggi per creare una serie di prese e collegarla con IB Elements (ecco un esempio di UIView, Puoi usare UILabel Anche):

  • Crea un array di IBOutlet
  • Aggiungi più UIElements (viste) nell'interfaccia Storyboard ViewController
  • Seleziona ViewController (nello storyboard) e apri la finestra di ispezione connessione
  • C'è l'opzione 'Collezioni di punti vendita' nell'ispettore della connessione (lì vedrai una serie di punti vendita)
  • Connettiti con gli elementi della tua interfaccia

-

class ViewController2: UIViewController {


    @IBOutlet var collection:[UIView]!


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

enter image description here

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top