Tenga una mirada en el siguiente fragmento de captura de pantalla de una aplicación para iPad que estoy trabajando en:Iconos de la barra de herramientas del iPad: ¿las imágenes del botón de la barra no están centradas?
El icono de "burbuja de chat" de la izquierda es de la famosa Glyphish icon set. Tenga en cuenta que tiene un posicionamiento vertical correcto (en el medio), pero es mucho más oscuro que la escala de grises utilizada para el botón InfoDark. El código para hacer este icono es el siguiente:
UIImage* image = [UIImage imageNamed:@"02-chat.png"];
CGRect frame = CGRectMake(0, 0, image.size.width, image.size.height);
UIButton* button = [[UIButton alloc] initWithFrame:frame];
[button setBackgroundImage:image forState:UIControlStateNormal];
[button addTarget:nil action:NULL forControlEvents:UIControlEventTouchUpInside];
[button setShowsTouchWhenHighlighted:YES];
UIBarButtonItem* chatBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];
el icono de "burbuja de chat" en el medio se crea utilizando la misma imagen, utilizando el código diferente. Tenga en cuenta la forma en que ha tenido correcta coloración/transparencia, pero tiene posicionamiento vertical incorrecta (demasiado alto) .:
UIImage* image = [UIImage imageNamed:@"02-chat.png"];
UIBarButtonItem* chatBarButtonItem = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:nil action:NULL];
¿Cómo consigo un botón UIBarButtonItem
que tiene tanto la coloración correcta/transparencia (por lo que no tengo que hacerlo manualmente), así como corregir el posicionamiento vertical?
¿Es uno de los errores, ya sea en mi código o en el de Apple? ¿O ambos? ¿O ninguno (es decir, "como está diseñado")?
Editar: Las respuestas a las respuestas
Parece que la primera versión es utilizando la imagen como una máscara, en lugar de como una imagen normal.
Parece que sí, pero no es el caso. Si sustituyo la imagen por una que haya sido alisada manualmente por un amigo con Photoshop y use un UIButton
, el posicionamiento y el color son correctos. Solo estoy tratando de encontrar ese paso manual.
Tenga en cuenta que poniendo UIResponder objetos (por ejemplo, UIButton) dentro de un UIBarButtonItem da impredecibles resultados, y he encontrado que es mejor es evitarlo.
¿Tiene una fuente? (Especialmente un enlace de Apple?) Nunca escuché eso.
Rediseña la imagen para que sea la tuya. Esa es la mejor y única forma de garantizar el tamaño adecuado, gradientes y la posición de todos los iconos de la barra de herramientas.
No estoy necesariamente en desacuerdo. Sin embargo, este es un paso manual que quiero eliminar. Debería ser posible obtener el comportamiento que deseo sin requerir edición. (Sobre todo porque consigo las dos mitades de la conducta deseada utilizando los marcos existentes. Simplemente no al mismo tiempo)
mejor para una barra de herramientas es 25x25 y 50x50 @ 2x. A veces es posible que tenga que ir al tan bajo como 23.
¿Es esto algo oficial de Apple? ¿Quizás del HIG? ¿Puedes proporcionar una fuente?
Puede intentar configurar imageInsets en para presionarlo hacia abajo.
Esto también es un proceso manual innecesario. La peor parte es que esto debe ajustarse a mano para cada imagen, y si una imagen cambia de alguna manera, se debe verificar dos veces. Demasiado trabajo. Quiero simplemente configurarlo en una imagen y dejar que el marco subyacente resuelva cómo centrar la imagen.
Ver la actualización de mi pregunta. –