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?

È stato utile?

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.

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