2010-06-03 10 views
5

Prima di tutto, c'è finalmente il supporto di NinePatch per iPhone, GRANDI grazie al team di Tortuga 22 per quello. Sfortunatamente per me non sono stato in grado di aggiungere la loro libreria al mio progetto.Come posso includere la libreria Tortine 22 NinePatch nel mio progetto XCode?

Se sufficiente trascinare e rilasciare i sorgenti-files nel mio progetto ho un sacco di "No such file or directory" -errors. Se faccio riferimento al file libNinePatch.a come un framework esterno, ottengo lo stesso risultato.

Qual è il modo corretto di farlo? Non ci sono istruzioni da parte loro quindi immagino ci sia un modo abbastanza semplice per farlo.

Grazie in anticipo.
// Abeansits

+1

Ho lo stesso problema, se trascino i file non riesco a compilare tutto. – DixieFlatline

risposta

1

Mi piace solo dire a tutti coloro che sono ancora in difficoltà con questo che ho caricato un podspec nel repository di CocoaPod.

Questo significa che se il progetto utilizza CocoaPods (e perché mai non è vero?), Si può semplicemente aggiungere:

pod 'Tortuga22-NinePatch'

Per vostra Podfile e avrete il supporto NinePatch. (nota che non è ancora compatibile con ARC, le richieste pull sono benvenute!)

+1

Poiché questa è una domanda molto vecchia e Cocoapods è il nuovo modo di aggiungere librerie andrò avanti e segnerò questa come la risposta alla domanda. – ABeanSits

0

Dovresti essere in grado di aggiungere i file al tuo progetto. Le risposte a this SO question potrebbero aiutare.

Inoltre, tenere presente che UIImage fornisce immagini estensibili. Vedi -stretchableImageWithLeftCapWidth:topCapHeight: per i dettagli. Questo non ti aiuterà se hai bisogno di leggere le immagini in un effettivo formato di nove patch, magari per condividere le risorse con un'app per Android, ma spesso è tutto ciò che è veramente necessario.

+0

ottengo errori su righe come questa "NPParameterAssertNotNilIsKindOfClass (loggingTags, NSArray)". Mi piacerebbe anche condividere le risorse con Android, ho pensato che fosse possibile con questa libreria? – DixieFlatline

0

Sei # includendo i file di intestazione principale in qualsiasi classe ti serva o nel file prefix.pch?

0

Se scarichi il loro source package da GitHub, vedrai che hanno incluso un progetto di esempio, NinePatchDemo. Ispezionare questo dovrebbe darti tutte le informazioni di cui hai bisogno.

Vedrai che hanno appena abbandonato il progetto NinePatch Xcode nel progetto NinePatchDemo, in "Altre fonti". Puoi trascinare e rilasciare il progetto NinePatch nel tuo modo nello stesso modo. Puoi verificare le impostazioni di costruzione e destinazione per assicurarti di includere tutti i percorsi/librerie necessari per la creazione.

Sembra che tu voglia -all_load -ObjC in altri flag Linker per il tuo obiettivo, e se la tua cartella di progetto è allo stesso livello della cartella ninepatch (come nel download da github), ti consigliamo anche di impostare l'intestazione Cerca i percorsi sul tuo obiettivo su ../NinePatch//**, variando di conseguenza se hai spostato qualsiasi cartella.

Diverso da quello che l'unica cosa che posso vedere è che sarà, ovviamente, bisogno di includere le intestazioni con #import <TUNinePatch.h>

NinePatchDemo costruito bene per me, così ho possibile verificare che la loro fonte funziona.

+0

Ciao Evan, aggiungo anche ninepatch library.it sta lavorando in simulator.while mi capita di trovare in errore device.please help – banu

+1

Non ho mai usato la libreria, ho appena spiegato come si installa normalmente una libreria di terze parti sopra (questo era prima dei cocoapodi). Sembra che il progetto non sia stato aggiornato in due anni, probabilmente dovresti cercare un'alternativa o forchetta tu stesso e farlo funzionare. –

+0

Grazie per le tue informazioni Evan.se sai usare Nove patch image, per favore condividi che link.it sarà utile per me e gli altri – banu

1

So che questa è una vecchia domanda, ma solo per aiutare le persone alla ricerca di novePatch nell'obiettivo c, voglio informare che la classe UIImage di iOS 5 in poi, ha un metodo per fare ciò che fa ninePatch.

Da UIImage reference:

Discussione

si utilizza questo metodo per aggiungere inserti cap a un'immagine oa cambiamento delle inserti cap esistenti di un'immagine. In entrambi i casi, si ottiene indietro una nuova immagine e l'immagine originale rimane intatta.

Durante o ridimensionare dell'immagine, aree coperte da un tappo sono non in scala o ridimensionati. Invece, l'area dei pixel non coperta dal cappuccio in ciascuna direzione è affiancata, da sinistra a destra e dall'alto verso il basso, per ridimensionare l'immagine con . Questa tecnica viene spesso utilizzata per creare pulsanti a larghezza variabile , che mantengono gli stessi angoli arrotondati ma la cui regione centrale cresce o si riduce a seconda delle necessità. Per prestazioni ottimali, utilizzare un'area piastrellata con un'area di 1x1 pixel.

Disponibilità Disponibile in iOS 5.0 e versioni successive.

dichiarata in UIImage.h

Un esempio di utilizzo se si desidera un'immagine con un top fix:

UIImage* image = [UIImage imageNamed:@"YourImage.png"]; 
image = [image resizableImageWithCapInsets:UIEdgeInsetsMake(25., 0, 0, 0)] 

Speranza che aiuta.

Problemi correlati