2010-11-04 5 views
7

¿Cuál es mejor usar si simplemente quiero una imagen de fondo para un UIView? Puedo lograr esto con cualquier método, pero ¿cuál es más eficiente? Mi corazonada es que usar un UIView con colorWithPaternImage es más eficiente que usar un UIImageView. Lo usaré para cada fila en un UITableView. ¡Gracias! MattcolorWithPatternImage vs. UIImageView

Respuesta

15

Totalmente en desacuerdo con los boreas. Puede haber diferencias significativas usando colorWithPatternImage frente a otras estrategias dependiendo de sus requisitos. Por ejemplo, si está usando un UIScrollView, usar colorWithPatternImage no permitirá que la imagen se desplace. También, en general, depende de qué tan grande sea su vista, ya que existe una compensación en el rendimiento frente a la huella de memoria para diferentes estrategias de mosaico.

Consulte WWDC 2010 session 104 que explica el rendimiento de mosaico usando CATiledLayer. Esta es una buena alternativa de alto rendimiento para usar el colorWithPatternImage incorporado o el CGContextDrawTiledImage.

Si su requisito es simplemente mostrar una sola imagen estática de 320x480, entonces no habrá diferencias significativas en las diversas estrategias, pero si sus requisitos son más complejos, entonces ciertamente existen.

+1

¿Qué ocurre si no quiero que la imagen se muestre en mosaico? Solo quiero que aparezca una vez como lo haría si utilizo un 'UIImageView'? – ma11hew28

+0

Si no desea que la imagen se muestre en mosaico, no puede usar 'backgroundColor colorWithPatternImage' a menos que la vista para la que está configurando el color de fondo sea exactamente del mismo tamaño que la imagen que está configurando como patrón de fondo. En ese caso, deberá agregar 'UIImageView' como subvista. Las vistas simples se usan en todas partes en iOS y generalmente tienen muy poco impacto en el rendimiento. Por lo tanto, no hay nada de malo en tener una imagen de fondo personalizada para sus tableviewcells. – memmons

+0

Entonces, si la vista para la que estoy configurando el color de fondo es exactamente del mismo tamaño que la imagen que estoy configurando como patrón de fondo, ¿es más eficiente usar 'colorWithPatternImage' en lugar de' UIImageView'? ¿Hay alguna diferencia si la imagen se muestra solo una vez en la pantalla o si se muestra la misma o diferente imagen en cada celda de la vista de tabla? – ma11hew28

1

Sí, hay un UIView allí de todos modos, ¿por qué molestarse con otro UIImageView?