Pregunta

Estoy tratando de usar una UIImage con StretchableImageWithleftCapWidth para configurar la imagen en mi UIIMageView, pero me encuentro con un error de escala extraño. Básicamente, imagine mi imagen como un óvalo de 31 píxeles de ancho. Los 15 píxeles izquierdo y derecho son las tapas y el píxel único medio es la porción escalada.

Esto funciona bien si configuré la tapa izquierda en 15. Sin embargo, si lo configuro en, por ejemplo, 4. Esperaría obtener una porción de 'centro' que esté un poco curva, ya que abarca el centro mientras los extremos son un poco apretado.

Lo que obtengo es la tapa izquierda aparentemente correcta, seguida de una larga porción media que es como si escalara el píxel único en el píxel 5, luego una porción a la derecha de la imagen donde se expande y cierra sobre un ancho aproximadamente el doble del ancho de la imagen original. La imagen resultante es como una bombilla del termómetro.

¿Alguien ha visto un comportamiento extraño como este y podría saber qué está pasando?

¿Fue útil?

Solución

Su observación es correcta, Joey. STRACKableImageWithleftCapWidth no expanda todo el centro de la imagen como era de esperar. ¡Solo expande la columna de píxeles a la derecha de la tapa izquierda y la fila de píxeles justo debajo de la tapa superior!

Use la propiedad ContencesTretch de UIView, y su problema se resolverá. Otra ventaja para esto es que el contenido de Contenido también puede reducir un gráfico correctamente, mientras que StretchableImageWithleftCapWidth solo funciona al hacer que el gráfico sea más grande.

Otros consejos

No estoy seguro de si te hice bien, pero el ancho de la izquierda, etc. está hecho para esquinas redondeadas, con todo en el rectángulo dentro del radio de redondeo se estira para que se ajuste al espacio entre las 'tapas' en el botón de destino o tal.

Entonces, si su óvalo es más alto o más ancho que 4 x 2 = 8, lo que esté en el rectángulo medio se estirará. Y el tuyo es, ¡así que al menos se vería un poco feo! Pero si ni siquiera es simétrico, algo ha afectado el estiramiento. Tal vez algo que ver con el origen o el marco, o cuando está configurado, o tal vez se establece dos veces, o tiene dos imágenes estiradas diferentes una encima de la otra, dando el aspecto del termómetro.

Una vez creé dos botones idénticos en el mismo lugar, usando el mismo objeto retenido, por supuesto, tirando el botón anterior. Luego me pregunté por qué diablos el botón no desapareció cuando puse a Alpha a 0 ... pero lo hizo, es solo que había un botón idéntico 'muerto' debajo de él :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top