Si quieres optimizar UIImageView en Xcode, no has de irte tan lejos como para agilizar la carga de un Image View (UIImageView) programáticamente. Podemos estar perdiendo rendimiento desde el mismo momento en que creamos nuestra vista de imagen en el propio Interface Builder. Repasamos los atributos para optimizar UIImageView en Xcode.

Aunque varios de los atributos de un UIImageView son autoexplicativos, hay otros que tienen un nombre muy poco descriptivo y que pueden llevar a error. Incluso algunos que aparecen activados por defecto y conllevan a una pérdida de rendimiento por unas capacidades que en raras ocasiones utilizaremos.

Optimizar UIImageView en Xcode. Los atributos

Para modificar los atributos de una Image View no hay más que seleccionarla en Interface Builder y asegurarnos de tener abierto y visible el panel Attributes (Alt + Cmd + 4). Las secciones que aquí se muestran son las siguientes.

Optimizar UIImageView en Xcode. Image View y View

Optimizar UIImageView en Xcode. Image View

Es la parte más importante del panel de atributos donde seleccionaremos la imagen a mostrar en nuestro Image View, la imagen correspondiente al estado highlighted y el estado en el que aparece por defecto.

Optimizar UIImageView en Xcode. View

En primer lugar tenemos el Mode, que permite definir cómo se mostrará la imagen dentro de la vista y si va a tener que escalarse o no.

Se puede seleccionar cualquiera de las opciones, pero aquí es donde aparecen las primeras optimizaciones al rendimiento que podemos realizar en nuestra App, ya que elegir cualquier opción que represente un redimensionamiento añadirá una carga de proceso a la aplicación en el runtime.

¿La solución? Utilizar un programa de retoque de imagen para incluirla en la vista ya con el tamaño adecuado y sin que esta tenga que realizar ningún cálculo extra.

Optimizar UIImageView en Xcode. Alpha y drawing

Optimizar UIImageView en Xcode. Alpha

El valor de Alpha, define la transparencia de tu imagen. Recalcar lo de “la imagen“, por lo que veremos posteriormente.

Con un rango de 0.0 a 1.0, si presente un valor inferior a 1, le estaremos diciendo al dispositivo que debe dibujar esta vista con una transparencia que permita ver aquello presente detrás de la imagen, con lo que nuestro iPhone o iPad deberá emplear más ciclos de procesador rellenando la parte de la vista que presenta transparencia. Si realmente no lo necesitas, no lo muevas del 1.

Optimizar UIImageView en Xcode. Drawing

La sección Drawing presenta unos checkboxes que nos permiten definir las siguientes opciones:

Opaque : activa por defecto. Le dice al sistema operativo que no se preocupe de dibujar nada de lo que hay debajo de esta vista. Con ello, optimizamos rendimiento.

Quizás te preguntes para qué esta opción, teniendo antes la opción de Alpha. Pues bien, Opaque se refiere a la vista completa, mientras que Alpha tan sólo a la imagen. De este modo, si nuestra imagen no ocupa toda la vista, estas zonas “extra”, vendrán definidas por la propiedad Opaque.

Clears Graphics Context: incomprensible que venga activa por defecto. Su objetivo es indicar a iOS que dibuje toda el area que cubre el objeto en un negro transparente antes de dibujar realmente el objeto. Es decir, trabajo extra y pérdida de rendimiento. Si no lo has hecho ya, deberías desactivarlo.

Clip Subviews: sólo para el caso de que tu vista contenga subvistas. Si está activa, sólo se mostrarán las partes de las subvistas que se encuentren dentro de los limites de su vista padre. De lo contrario, se dibujarán completamente.

Parece obvio que el comportamiento correcto sería el primero, es decir, que debería venir activo por defecto y, sin embargo, no es así. La realidad es que es muy raro que una subvista esté fuera de los límites de una vista y, si activamos esta opción, el sistema deberá procesar los recortes de las subvistas y, por lo tanto, el rendimiento cae en picado. Desactivado por defecto y, salvo que tengas una buena razón, así es como debe estar.

Unos pasos muy sencillos para, al menos, no comenzar lastrando el rendimiento de las Image View de nuestra App. Incluso muchas de estas opciones también son aplicables a otras Views, aunque tendrás que contemplar cada caso por separado. La optimización por código ya es otra historia.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies
¿Quieres contenidos Mac exclusivos?

¿Quieres contenidos Mac exclusivos?

Regístrate y de regalo recibirás la colección de eBooks de pacocardenal.com

Te has registrado correctamente. Ahora revisa tu correo electrónico (spam incluido) para verificar tu suscripción.

Pin It on Pinterest

Share This