2016-06-30 12 views
5

Posso mettere i file in Assets.xcassets o posso mettere i file nei riferimenti di cartella (le cartelle blu). Quando dovrei scegliere l'uno rispetto all'altro?Riferimento del catalogo delle risorse o della cartella: quando utilizzare l'uno o l'altro?

+1

dovresti ovviamente utilizzare le risorse da iOS 9, è stato introdotto App-slicing che ti consente di servire risorse di dimensioni specifiche su dispositivi diversi, riducendo quindi la dimensione dell'app e scarica la larghezza di banda – Shubhank

risposta

3

Probabilmente si dovrebbe utilizzare cataloghi di asset come questo è quello che Apple vuole poter utilizzare in futuro (gli strumenti rifletteranno quello) e portano molti vantaggi:

  • App assottigliamento

  • Impostazione delle proprietà degli asset senza codice, ad esempio, modalità di rendering o affettare

  • Non c'è bisogno di ricordare le convenzioni di denominazione come @2x, ~ipad, -568 ecc per ottenere risorse specifiche del dispositivo automaticamente

  • cataloghi Asset faranno notare beni mancante se spuntare le caselle di destra per le versioni e voi dispositivi supporto, e forniscono una bella panoramica

  • si dovrebbe abituarsi a loro come alcune piattaforme (ad esempio, watchos) richiedono l'utilizzo di cataloghi di asset

ci sono pochi Avvertenze:

  • Se si distribuisce tornare a iOS 6, alcune caratteristiche don't work as expected - cataloghi di asset ancora aiutano a organizzare i vostri beni, ma le caratteristiche di runtime non funzionerà come Xcode sarà solo il dump dei file di immagine in pianura il vostro pacco.

  • Se si distribuisce su iOS 7 o versioni successive, Xcode compilerà tutte le risorse in un file .car (è l'intera idea). Tuttavia, può essere più difficile eseguire il debug perché non è possibile esaminare il file compilato e significa anche che non è possibile ottenere semplicemente un URL di file da un singolo asset. Per creare un URL di file, devi sempre caricare la risorsa (dal suo nome) e scriverla prima sul disco. *

  • L'ultimo punto implica anche che non è possibile utilizzare le NSBundle (a Swift 3.0: Bundle) API per recuperare gli URL o percorsi di file di immagini. Per caricare le risorse da un pacchetto diverso dal bundle principale, fai affidamento su Apple per fornire un'API, which they do since iOS 8.0. Se si organizza il codice condiviso in pacchetti di risorse e si esegue la distribuzione su iOS 7 o versioni precedenti, non utilizzare i cataloghi delle risorse.Questo è probabilmente per lo più rilevante se si intende sviluppare un framework.

* ad esempio l'API CoreSpotlight consente di impostare un thumbnailURL, ma se l'immagine è all'interno di un catalogo risorsa, è necessario scrivere su disco a parte voi stessi, o utilizzare la proprietà thumbnailData. Se all'inizio avessi un URL di file, non dovrai mai caricare la risorsa in memoria. Non sono sicuro che Spotlight possa accedere agli URL dei file dal tuo pacchetto di app. È solo un esempio

1

È necessario utilizzare le risorse. Molti benefici i riferimenti delle cartelle non possono fare

1) Cambiare il colore delle immagini, senza alcun codice

2) Supporto vettore, pdf meglio.

3) Supporto Slicing image.

enter image description here

4) Gestire risorsa più facile per autolayout. Se le tue risorse hanno 1x, 2x, 3x e ipad image size != iphone image size, puoi aggiungere 6 file in 1 elemento attivo.

Si può leggere di più qui http://krakendev.io/blog/4-xcode-asset-catalog-secrets-you-need-to-know

Problemi correlati