¿Cuándo debo ir con gráficos centrales sobre imágenes para hacer un UIButton personalizado? ¿Son los gráficos centrales más rápidos? Además de la independencia de la resolución, ¿hay algún otro beneficio importante?Core Graphics Vs Imágenes para un botón personalizado
Respuesta
Pros de núcleo gráfico:
- Código para la elaboración de un botón, probablemente será más pequeño que un archivo de imagen.
- Permite la modificación dinámica, pequeños cambios sin agregar una segunda imagen completa.
- Como mencionaste, la resolución es independiente.
- Menos memoria intensiva (no asigna memoria para contener cada píxel).
Pros de imágenes:
- creación de la imagen en un editor lo general, será más sencillo que escribir código que dibuja a la perfección. (Si utiliza algo que no sean colores sólidos, podría ser mucho más simple.)
- El editor le permitirá ver la imagen de antemano sin volver a compilar.
- Más fácil de trabajar con otros objetos integrados (es decir, puede convertirlo en el fondo de un UIButton).
En cuanto al tiempo de ejecución, no estoy seguro. Supongo que CG sería más rápido para el dibujo simple, donde la mayoría de los píxeles no se cambian, pero las imágenes serían más rápidas para el dibujo más complejo donde se cambian la mayoría de los píxeles (suponiendo que utilice el formato PNG, por lo que se optomized De lo contrario, CG probablemente sería siempre más rápido).
Como solución de compromiso, puede dibujar en una imagen una vez y utilizar esa imagen para dibujar en el futuro. Esto le permitiría obtener algunos de los beneficios de cada uno.
pensamientos adicionales a ughoavgfhw's comment:
Las imágenes se pueden almacenar en caché (como cuando se utiliza
[UIImage imageNamed:]
). De modo que ni siquiera usará más memoria para los nuevos botones, excepto el primero que se muestra. (Y sin asignaciones, excepto la memoria para un nuevo puntero).Usted puede utilizar las imágenes extensibles de creación de botones y evitar algunos (no todos y no siempre) problemas con la resolución de la dependencia:
UIImage *myImg = [UIImage imageNamed:@"myImg.png"]; UIImage *myImgStretchable = [myImg stretchableImageWithLeftCapWidth:10 topCapHeight:10]; [myButton setBackgroundImage:myImgStretchable forState:UIControlStateNormal];
- 1. Core Image vs Core Graphics
- 2. Learning Core Graphics
- 3. ¿Cómo hago un punto usando Core Graphics?
- 4. Core Graphics & GIF Color Table
- 5. Core Graphics sistema de coordenadas
- 6. Ventajas de utilizar Core Graphics
- 7. Ruido Gaussiano solo con Core Graphics?
- 8. Biselando una ruta/forma en Core Graphics
- 9. iPhone Core Graphics línea discontinua más gruesa para la subvista
- 10. Cómo dibujar un rectángulo redondeado en Core Graphics/Quartz 2D?
- 11. NSCoding VS Core data
- 12. ¿Es seguro este hilo del código de Core Graphics?
- 13. ¿Obliga a una ventana a redibujarse utilizando Core Graphics?
- 14. Cambiar el tamaño de la imagen en Core Graphics
- 15. Cómo dibujaría algo como esto en Core Graphics
- 16. ¿Qué partes de UIKit, Core Graphics, Core Animation, OpenGL están permitidas en no main-thread?
- 17. NSOperation VS GCD para Core-Data
- 18. Cómo agregar un estado de botón personalizado
- 19. ¿Puedo configurar un ícono personalizado para un botón jQueryUI?
- 20. Java Graphics library
- 21. CKEditor buscador de imágenes personalizado
- 22. Android, retire botón personalizado frontera
- 23. Cómo crear efectos en relieve o en la sombra con Core Graphics (para pintura de dedos)
- 24. Dibujando imágenes dentro de un ComboBox personalizado
- 25. iphone - UIBarButtonItem personalizado para el botón Atrás
- 26. ¿Cómo apilo imágenes para simular profundidad usando Core Animation?
- 27. UIToolBar personalizado a partir de imágenes
- 28. ¿Cómo hacer un degradado cónico en iOS usando Core Graphics/Quartz 2D?
- 29. JavaFX - crear botón personalizado con imagen
- 30. botón vs input type = "submit" vs un onclick = "document.formname.submit()"
Puede aclarar lo que entendemos por hacer un botón personalizado con gráficos centrales y hacer uno con imágenes? –