2009-05-24 17 views
9

Me gustaría extraer los iconos predeterminados de UIBarButtonItem del iPhone SDK. Imagino que probablemente estén almacenados en la plataforma iPhoneSimulator como PNG de solo canal alfa, pero todavía no lo he encontrado.¿Cómo extraer UIBarButtonItem Icons del iPhone SDK?

El que estoy buscando es UIBarButtonSystemItemReply. (Para aquellos sospechosos de que incluso hay un caso de uso válido para esto, estoy buscando usar esto en un encabezado de fila de la tabla donde el usuario puede publicar respuestas, por filas)

Respuesta

4

El archivo Other.artwork se encuentra en /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/Frameworks/UIKit.framework/ (necesita el SDK).

Utilice el programa "iPhoneShop-1.3.jar" - disponible actualmente here para extraer todas las imágenes en un directorio.

java -jar iPhoneShop-1.3.jar ARTWORK Other.artwork EXPORT Other 
+1

ver aquí para otra herramienta que funciona con iOS 4.3 archivos https://github.com/davepeck/iphone-tidbits/tree/master/iOS-artwork – sdsykes

+1

Como se ha mencionado en mi comentario en la respuesta no aceptada a continuación, lo hice: en la carpeta /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/D eveloper/SDKs, hice: 'find. -iname "* .png *" -print0 -exec cp {} ~/tmp \; ' – fatfreddyscat

1

No sé cómo hacer esto Sin embargo, tenía curiosidad sobre lo mismo hace unos meses. Es posible que pueda inicializar este UIBarButtonItem y extraer la imagen de este mediante un bucle a través de todos los elementos en su UIView y volcar el NSImages. No estoy seguro de cómo hacerlo, pero recuerdo que Erica Sadun escribió un artículo sobre el uso de una imagen de cámara de pantalla completa. No tengo permiso para agregar un enlace, así que solo busca "erica sadun con cámara de pantalla completa".

17

Para copiar todos los iPhone (o MacOS) iconos del sistema van a directorio:

cd /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/ 

=> puede haber más de una versión iPhoneSimulator (iPhoneSimulator4.3.sdk), acaba de elegir la prefieres. Y de seguir comando de ejecución:

find . -iname "*.png*" -print0 | xargs -I{} -0 cp -v {} /tmp/iPhoneIcons/ 

/tmp/iPhoneIcons/ => es el directorio de destino

+0

+1 Esto funciona en bash; para utilizarlo en tcsh, tenga en cuenta que debe poner comillas simples alrededor de ambos conjuntos de llaves: ''{}' ' –

+6

A partir de Mac OS 10.8, el directorio del SDK se movió a'/Aplicaciones/Xcode.app/Contents/Developer/ Plataformas/iPhoneSimulator.platform/Developer/SDKs' – alex

+0

no funcionó para mí (simplemente copiaba + reemplazaba cada imagen una y otra vez para que, al final, me quedaba una imagen, ninguna extensión, esa era la última imagen copiado) así que, en cambio, en la carpeta /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/D eveloper/SDKs, hice: 'encontrar. -iname "* .png *" -print0 -exec cp {} ~/tmp \; ' – fatfreddyscat

0

Se trata de un viejo hilo, pero lo encontré en Google. Extraje con éxito imágenes de UIBarButtonItems inicializadas con elementos del sistema, utilizando el código a continuación. Todos los programas extractores no lo hacían en iOS 6, o eran demasiado complicados para mí. Como solo necesitaba 5-6 imágenes, las obtuve de forma manual.

- (void)viewDidAppear:(BOOL)animated { 

UIView *v1 = self.navigationController.navigationBar; 
for (int i = 0; i < v1.subviews.count; i++) 
{ 
    UIView *v2 = [v1.subviews objectAtIndex:i]; 
    NSLog(@"%i %@", i, [v2 class]); 
    if (i == 2) 
    { 
     for (int j = 0; j < v2.subviews.count; j++) 
     { 
      UIView *v3 = [v2.subviews objectAtIndex:j]; 
      NSLog(@" %i %@", j, [v3 class]); 

      if (j == 1) 
      { 
       // In my test, this view was UIImageView containing button image 
       UIImageView *iv = [[UIImageView alloc] initWithImage:((UIImageView *)v3).image]; 
       [self.view addSubview:iv]; 
      } 
     } 
    } 
} 

}