Rendimiento para elementos gui simples: ¿cuarzo 2d o png?

Tengo algunos botones simples en mi aplicación iOS. Puedo dibujarlos correctamente con cuarzo 2d, pero también podría usar rebanadas png para construirlos.

¿Qué sería mejor para la CPU y las asignaciones del iPad?

preguntado el 03 de mayo de 12 a las 13:05

1 Respuestas

Si yo fuera usted, también tendría en cuenta los factores de independencia de la resolución y el tamaño de la aplicación. Elementos de interfaz de usuario simples, incluso Apple recomienda dibujar en cuarzo (ver WWDC 2011 - Dibujo práctico). La mayoría de las aplicaciones de Apple también lo hacen de esa manera (la aplicación Stocks, la aplicación Weather, una buena parte de iPhoto, etc.)

En cuanto al rendimiento, he realizado algunas pruebas aquí ( https://github.com/pkluz/PKCoreTechniques ) creando un AngryBird únicamente en Cuarzo con curvas Bezier de grados bastante altos. Ahora, para un iPad 3, tendría que proporcionar imágenes bastante grandes para hacerlo (> 2-3 MB solo para UNA imagen en dicho dispositivo), pero con Quartz son solo un par de bytes de código. La renderización de dicho Angry Bird fue la mayor parte del tiempo entre un 15 y un 18 % más lenta que cargar una imagen, pero supongo que eso cambiaría rápidamente si la densidad de píxeles aumentara más. Para formas simples, Quartz debería ser más rápido la mayoría de las veces que cargar imágenes del paquete. Aunque recuerde, el crecimiento no es lineal, por lo que, dependiendo de la complejidad y el tamaño, pueden cambiar rápidamente a favor de las imágenes.

Recuerda cómo las aplicaciones duplicaron su tamaño cuando salió el iPad 3. No tendría ese problema con Quartz y su aplicación estaría lista para alta resolución sin ningún trabajo adicional :)

La regla general que aconsejo a la gente que siga es: "Si no puedo entender la descripción geométrica de un objeto desde el principio, usaré una imagen".

Respondido el 21 de enero de 13 a las 20:01

Genial, muchas gracias, estoy deseando implementarlo con ese material básico: wasd-wasd

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.