objective framework development buttons app objective-c ios ipad uibutton

objective c - framework - iPhone/iPad botón personalizado redondeado y archivos png



swift button action (1)

Estoy desarrollando una aplicación universal con XCode 4.2 en Snow Leopard y quería mostrar botones redondeados con archivos png integrados. Los botones redondeados provienen de las clases UIGlossyButton de cocoacontrols.com. Los archivos png son variedades retina y no retina. Establecí el alto y el ancho de los UIButtons en 60, 60 en el iPhone y 120, 120 en el iPad. Adjunto una captura de pantalla del simulador de iPad (versión no retina). Estoy algo preocupado por el tamaño de los iconos. Se ve tan pequeño. Quería que la aplicación se ejecutara en el iPad 2 y también en Mini ya que ambas son pantallas que no son retina. ¿Es este el enfoque correcto para mostrar en un dispositivo iPad2 real ?. Además, ¿el botón redondeado se ve perfecto en iPad? Todavía no pagué la licencia de desarrollador y no tengo un iPad.

El siguiente es el código para dibujar el botón UIGlossy redondeado (con referencias a las clases de botón redondeadas):

UIGlossyButton *b; b = (UIGlossyButton*) [self.view viewWithTag: 78]; b.tintColor = [UIColor colorWithRed:0.2 green:0.3 blue:0.7 alpha:1.0]; [b useWhiteLabel: YES]; b.buttonBorderWidth = 2.0f; b.buttonCornerRadius = 200.0f; //iPad. For iPhone, I''m using 40.0f [b setGradientType: kUIGlossyButtonGradientTypeLinearSmoothExtreme]; [b setExtraShadingType:kUIGlossyButtonExtraShadingTypeRounded]; }

La captura de pantalla se muestra a continuación,

Por favor ayuda.


¿Le preocupa la pequeñez de los botones o la pequeñez de las imágenes en escala de grises sobre ellos? Si le preocupa el tamaño de los botones, cambiar los marcos de los botones los hará más grandes.

Sin embargo, si le preocupan las imágenes de los botones, tenga en cuenta que una "pantalla Retina" no cambiará el tamaño de las imágenes tal como se percibe a simple vista, solo mejora la resolución de las imágenes si está disponible una imagen @2x adecuada . Por lo tanto, el "tamaño" de la imagen del ícono será el mismo tanto en la retina como en la pantalla sin retina. Es decir, si abre la misma aplicación en un iPad 1 y un iPad 3, todo tendrá el mismo tamaño, pero las imágenes en la pantalla del iPad 3 se verán más suaves debido a la mayor resolución.

(Esto se debe a que cuando establece el tamaño de un UIButton lo establece en points , no en pixels . Los Points están diseñados para ser independientes de la resolución; consulte la sección Puntos contra píxeles aquí ).

Por supuesto, con el iPad Mini, todo parecerá un poco más pequeño de todos modos, pero aún en proporción.

Por lo tanto, si los iconos de los botones se ven demasiado pequeños, deberá usar imágenes de superposición más grandes. Si lo hace, los iconos se verán más grandes en todas las pantallas, retina y no retina por igual.

En cuanto a los botones redondos que lucen "perfectos", no veo nada de malo en el brillo de los botones como los mostraste arriba, pero diría que los íconos son demasiado pequeños (y difíciles de ver grises). -azul). Por lo tanto, usaría imágenes de íconos más grandes. - Pero esa es mi opinión personal.

Respuesta para comentar:

Las imágenes @ 2x solo se usan en pantallas retina (iPad 3+, iPhone 4+). Nunca deberías cargar imágenes @ 2x directamente, el dispositivo se encarga de eso. Si los iconos solo aparecen pequeños en el iPad, intente hacer copias de las imágenes (tanto normales como @ 2x) y amplíelos manualmente (digamos 1.5x) en Photoshop / Vista previa / etc. Luego, modifique su código para que el iPhone cargue las imágenes de forma normal, pero el iPad carga estas imágenes ligeramente más grandes. Por lo tanto, su paquete de aplicaciones podría incluir:

  • buttonImage_Tag_iPhone.png --- Digamos 64x64
  • [email protected] --- Por lo tanto, 128x128
  • larger_button_image_tag_iPad.png --- Digamos 96x96
  • [email protected] --- Por lo tanto, 192x192

Luego puede usar el siguiente código para cargar la imagen apropiada:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { // Use larger_button_image_tag_iPad.png } else { // Use buttonImage_Tag_iPhone.png }

Por supuesto, puedes poner nombre a las imágenes como quieras, solo las he hecho diferentes para el ejemplo.