2010-10-06 6 views
10

Nuovo per iOS, proveniente dal mondo Java/Swing, dove sono abituato a creare interfacce utente a livello di codice, lasciando che i componenti si dimensionino e utilizzino vari gestori di layout intelligenti per organizzare le cose.Best practice per layout interfaccia utente programmatico iOS/monotouch

Sembra già chiaro che il modo iOS è quello di fare un uso pesante di Interface Builder, con un sacco di dimensioni fisse e posizionamento. Non sono sicuro che IB verrà mai in modo naturale, ma immagino che i layout fissi abbiano senso dato che stai lavorando con spazio limitato e una dimensione fissa della finestra.

Sembra ancora che stia scrivendo un sacco di caratteri standard, tuttavia, violando DRY e così via.

Qualcuno può indicarmi un buon primer sulla creazione di interfacce utente iOS, in particolare interfacce utente programmatiche?

risposta

20

Non è necessario utilizzare IB per scrivere app MonoTouch. Non lo faccio quasi mai. L'API CocoaTouch è abbastanza semplice e intuitiva su cui svilupparsi.

non ho davvero trovato alcuna interessante resoconto sullo sviluppo dell'interfaccia utente diverso da quello della documentazione di Apple (che è veramente buono, a proposito, degno lettura), quindi ecco qui un paio di suggerimenti, in base alla mia esperienza:

  • L'ereditarietà è la chiave per mantenere pulito il codice. Puoi ereditare fondamentalmente qualsiasi classe nell'API, come pulsanti, controller, viste, ecc. Eredita e aggiungi le tue personalizzazioni in quelle classi. Non spingere tutto in AppDelegate come mostrano molti esempi. Mi ringrazierai più tardi.
  • Ho già menzionato l'ereditarietà?
  • L'unica cosa che iOS non ha è un gestore di layout, quindi se sei abituato a Java come hai detto, sembrerà un po 'strano. Diverso da ciò che pensa la gente di Java, questo non è un grosso problema. UITableViews aiuta moltissimo con questo (vedi il prossimo punto).
  • Un sacco di app per iPhone sono costruite sopra UITableViewController, anche app che non assomigliano a tabelle. È un ottimo framework per fare qualsiasi cosa relativa allo scrolling. Impara a usarlo bene. Quasi tutto ciò che scorre verticalmente è un UITVC. Segui le linee guida che definiscono quando crei e quando disponi celle e oggetti.
  • Fare attenzione ogni volta che si aggiunge una posizione Frame nel controllo. Invece di impostare i valori codificati, prova a utilizzare gli offset da altre posizioni (x + 40, ad esempio) ogni volta che è possibile.
  • Assicurarsi di aggiungere le viste al contenitore appropriato secondo necessità. Ad esempio, se si aggiunge una vista "Caricamento in corso", aggiungerla all'oggetto Finestra, mentre se si aggiunge un'immagine sul lato sinistro di una cella della tabella, utilizzare ContentView. iOS cambia automaticamente tutte le visualizzazioni speciali (schermo di ridimensionamento per adattarsi alla barra "in chiamata" in alto o al telefono ruotante).
  • Miguel de Icaza ha creato un ottimo framework per la gestione di moduli e tabelle, denominato MonoTouch Dialog. Take a look, and enjoy.
+0

Grazie - questo è utile. Continuerò a cercare di capire IB per un po ', anche se solo perché tanta documentazione presume che tu la stia usando, ma probabilmente passerò alla codifica manuale troppo presto. –