Come si visualizzano le UIVview personalizzate in Interface Builder?
-
20-08-2019 - |
Domanda
Mi sembra che mi diverta a progettare nuovi UIViews
e UIControls
che implementano il loro metodo -drawRect:
. Questo funziona bene per me, specialmente se composto usando <=> in Interface Builder .
Ma compilarli in Interface Builder è fastidioso perché si presentano solo come noiosi rettangoli semplici.
Sarebbe bello se le viste si mostrassero davvero come fanno i controlli integrati.
Esiste un modo per strutturare il mio progetto in modo che Interface Builder visualizzi le mie viste personalizzate?
Soluzione
Per fare ciò, devi effettivamente creare un plug-in per Interface Builder che utilizza la tua classe personalizzata. Una volta creato e installato il plug-in, sarai in grado di trascinare e rilasciare le istanze della tua classe (la tua vista) su un'altra finestra / vista / qualunque cosa come qualsiasi altro controllo. Per iniziare a creare plug-in IB, consultare Guida alla programmazione del plug-in Interface Builder . Inoltre, ti consiglio di dare un'occhiata al libro di Aaron Hillegass, Cocoa Programming per Mac OS X . Oltre ad essere molto ben scritto e facile da capire, ha un capitolo sulla creazione dei controlli della palette IB.
Altri suggerimenti
Ciò è possibile contrassegnando la sottoclasse UIView con @IBDesignable
. Una volta fatto ciò, le visualizzazioni personalizzate si renderizzeranno in Interface Builder. È anche possibile aggiungere parametri che possono essere configurati contrassegnandoli come @IBInspectable
. Ecco un esempio Swift:
@IBDesignable class customView: UIView {
@IBInspectable var count: Int = 0
}
C'è un articolo su NSHipster che fornisce maggiori dettagli.