2010-06-03 17 views
5

En primer lugar, finalmente hay compatibilidad con NinePatch para el iPhone, GRANDE gracias al equipo de Tortuga 22 por eso. Desafortunadamente para mí no he podido agregar su biblioteca a mi proyecto.¿Cómo hago para incluir la biblioteca Tortuga 22 NinePatch en mi proyecto XCode?

Si tan sólo arrastrar y soltar los archivos en source-mi proyecto tengo una tonelada de "No existe el fichero o directorio" -errors. Si hago referencia al archivo libNinePatch.a como un marco externo, obtengo el mismo resultado.

¿Cuál es la forma correcta de hacerlo? No hay instrucciones de su parte, así que supongo que debe haber una manera bastante directa de hacerlo.

Gracias de antemano.
// Abeansits

+1

Tengo el mismo problema, si arrastro y suelto archivos no puedo compilar todo. – DixieFlatline

Respuesta

1

Me gustaría decirle a todos los que todavía luchan con esto que he subido un podspec al repositorio de CocoaPod.

Esto significa que si el proyecto utiliza CocoaPods (y ¿por qué no?), Puede simplemente añadir:

pod 'Tortuga22-NinePatch'

Para su PODFILE y que tendrá el apoyo NinePatch. (fíjate que todavía no es compatible con ARC, ¡las solicitudes de extracción son bienvenidas!)

+1

Dado que esta es una pregunta muy antigua y Cocoapods es la nueva forma de agregar bibliotecas, continuaré y marcaré esto como la respuesta a la pregunta. – ABeanSits

0

Debería poder agregar los archivos a su proyecto. Las respuestas al this SO question pueden ayudar.

Además, tenga en cuenta que UIImage proporciona imágenes elásticas. Vea -stretchableImageWithLeftCapWidth:topCapHeight: para más detalles. Eso no lo ayudará si necesita leer imágenes en formato de nueve parches reales, tal vez para compartir recursos con una aplicación de Android, pero a menudo es todo lo que realmente se necesita.

+0

obtengo errores en líneas como esta "NPParameterAssertNotNilIsKindOfClass (loggingTags, NSArray)". También me gustaría compartir resoruces con Android, ¿pensé que esto es posible con esta biblioteca? – DixieFlatline

0

¿Está # incluyendo los archivos de encabezado principal (s) en las clases que necesite o en el archivo prefix.pch?

0

Si descarga su source package de GitHub, verá que han incluido un proyecto de ejemplo, NinePatchDemo. Inspeccionar esto debería darle toda la información que necesita.

Verás que acaban de eliminar el proyecto NinePatch Xcode en el proyecto NinePatchDemo, en "Otras fuentes". Puede arrastrar y soltar el proyecto NinePatch en el suyo de la misma manera. Puede verificar la configuración y la configuración de destino para asegurarse de que está incluyendo las rutas/bibliotecas que necesita para construir.

Parece que desea -all_load -ObjC en los demás indicadores de Enlazador para su destino, y si su carpeta de proyecto está en el mismo nivel que la carpeta de nueve parches (como en la descarga de github), también querrá configurar el Encabezado Busque rutas en su destino al ../NinePatch//**, variando en consecuencia si ha movido alguna carpeta.

Aparte de eso lo único que puedo ver es que va, por supuesto, la necesidad de incluir las cabeceras con #import <TUNinePatch.h>

NinePatchDemo construido bien para mí, así que puede verificar que su fuente funciona.

+0

Hola Evan, también agregué ninepatch library.it está trabajando en simulator. Mientras estoy corriendo en el dispositivo, muestra error.please help – banu

+1

Nunca he usado la biblioteca, solo he explicado cómo uno normalmente instala una biblioteca de terceros arriba (esto fue antes cocoapods). El proyecto parece que no se ha actualizado en dos años, probablemente debería buscar una alternativa o hacerlo por su cuenta y ponerlo en funcionamiento. –

+0

Gracias por su información Evan.si conoce el uso de la imagen del parche Nueve, comparta ese enlace.será útil para mí y para otros – banu

1

Sé que esta es una vieja pregunta, pero solo para ayudar a las personas que están buscando ninePatch en el objetivo c, quiero informarles que la clase UIImage de ios 5 on, tiene un método para hacer lo que hace ninePatch.

De UIImage reference:

Discusión

utiliza este método para agregar inserciones de tapa a una imagen o el cambio a las inserciones de tapa existentes de una imagen. En ambos casos, obtiene una imagen nueva y la imagen original permanece intacta.

Durante la ampliación o el cambio de tamaño de la imagen, las áreas cubiertas por un límite son no escaladas o redimensionadas. En su lugar, el área de píxeles no cubierta por el límite en cada dirección se muestra en mosaico, de izquierda a derecha y de arriba a abajo, para cambiar el tamaño de la imagen a . Esta técnica se usa a menudo para crear botones de ancho variable , que conservan las mismas esquinas redondeadas pero cuya región central crece o se contrae según sea necesario. Para obtener el mejor rendimiento, use un área de mosaico que tenga un área de 1x1 píxel de tamaño.

Disponibilidad Disponible en iOS 5.0 y posterior.

declarados en UIImage.h

Un ejemplo del uso si quieres una imagen con una tapa solución:

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

espero que ayude.

Cuestiones relacionadas