2011-09-02 15 views
6

Estoy descargando algunas imágenes de una API a mi aplicación ios y luego mostrar las imágenes como un fondo de botón. Aquí está el código:iOS La imagen gira en el botón presione

NSData *imageData = [r responseData]; 
UIImage *image = [UIImage imageWithData:imageData];    
UIBlockButton *imageView = [UIBlockButton buttonWithType:UIButtonTypeCustom];  
[imageView setBackgroundImage:image forState:UIControlStateNormal]; 

Aquí está la parte extraña. Las imágenes verticales (la longitud es menor que la altura) girarán 90 grados cuando presione el botón. ¿Alguien ha experimentado esto antes/es un error?

Editar: Por lo tanto, mi servidor envía las imágenes en el estado girado. De alguna manera, el UIButton sabe rotarlo cuando no está seleccionado, pero no hace la misma corrección cuando lo selecciono.

Respuesta

3

Añadir [imageView setBackgroundImage:image forState:UIControlStateHighlighted];

A menos que, por supuesto, prefiere otra imagen para el estado de relieve para simular el real de la presión del botón. En ese caso, usará la otra Imagen en/en lugar de "imagen".

Pero debe deshacerse de ese extraño efecto al menos.

+0

Gracias. Yo lo hice. Supongo que estoy haciendo la pregunta más para ver si alguien sabe por qué sucede. –

+0

Francamente, no sé por qué. Me vino a la mente porque vi que sucedían otras cosas extrañas cuando no estaba configurada la imagen para resaltar el estado. El motivo podría ser que su imagen descargada contiene algunos datos EXIF ​​con una etiqueta de orientación establecida en vertical. Pero en ese caso podría preguntar por qué no se rotó en estado normal. :) –

+0

Para mí, esto hace que el error ocurra un poco menos a menudo, pero aún ocurre la mitad del tiempo. Otro punto de datos extraño: cuando los botones se muestran por primera vez, este código hace que la imagen se muestre correctamente cuando se resalta. Solo después de que la vista padre desaparece, reaparece la falla (y de nuevo, solo la mitad del tiempo). Extraño. – benvolioT

Cuestiones relacionadas