Tengo una UINavigationBar con un UIBarButtonItem personalizado (que utiliza un UIButton como su vista personalizada). El problema es: el área activa del botón personalizado es demasiado grande, si toco al menos 40 píxeles fuera del botón, aún se registra como un toque en el botón. Esto resulta en golpecitos accidentales. ¿Cómo puedo reducir el área activa de estos botones?área activa más pequeña para UIBarButtonItem personalizado
Respuesta
Creo que no ha cambiado el tamaño del botón personalizado ... Intente hacer esto ... En el constructor Interfaz, seleccione el botón que desea reducir el área activa y luego presione "Comando + 3" o "herramientas -> Tamaño inspector" en que reducen y valores 'W' 'H' ... esto hará que el botón personalizado más pequeño y por lo que el área activa también consigue reducir ...
~ Raviraja
¿Está agregando el botón a través de Interface Builder o lo está haciendo mediante programación? De cualquier manera, se puede utilizar esta línea de código para establecer los límites de la imagen:
yourButton.bounds = CGRectMake(0, 0, yourImage.size.width, yourImage.size.height);
Si quieres un ejemplo completo, aquí hay uno que utilicé en una de mis aplicaciones:
UIImage *image = [UIImage imageNamed:@"audio-off.png"];
UIButton *myMuteButton = [UIButton buttonWithType:UIButtonTypeCustom];
myMuteButton.bounds = CGRectMake(0, 0, image.size.width, image.size.height);
[myMuteButton setImage:image forState:UIControlStateNormal];
[myMuteButton addTarget:self action:@selector(mute) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *myMuteBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:myMuteButton];
navBar.leftBarButtonItem = myMuteBarButtonItem;
[myMuteBarButtonItem release];
I notó esta rareza también. Descubrí que al usar un contenedor, UIView corrige esto. Por ejemplo:
UIButton *menuButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
[menuButton addTarget:self action:@selector(revealMenu:) forControlEvents:UIControlEventTouchUpInside];
[menuButton setImage:[UIImage imageNamed:@"menuIcon"] forState:UIControlStateNormal];
UIView *menuButtonContainer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
[menuButtonContainer addSubview:menuButton];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:menuButtonContainer];
- 1. iphone - UIBarButtonItem personalizado para el botón Atrás
- 2. Azure: 2 veces más pequeña o una pequeña instancia pequeña
- 3. Fondo personalizado para la ventana activa
- 4. Agregar un selector personalizado a un UIBarButtonItem
- 5. Encontrar la ventana más pequeña
- 6. suma más pequeña de pares
- 7. onItemClickListener no se activa en ArrayAdapter personalizado
- 8. ¿La diferencia más pequeña entre dos ángulos?
- 9. La diferencia más pequeña entre 2 ángulos
- 10. selección más pequeña y más bonita con bootstrap.css
- 11. La secuencia de comandos lightbox jQuery más pequeña
- 12. QSplitter: ¿Cómo hacer que la segunda columna sea más pequeña?
- 13. Encontrar una imagen pequeña en una más grande
- 14. Identificación de puntos con la distancia euclídea más pequeña
- 15. MySql elemento de segunda más pequeña de cada grupo
- 16. obtener la unidad más pequeña de una moneda en python
- 17. Sin sombra/Relieve en UIBarButtonItem
- 18. Elemento de acción personalizado de administración activa Nombre del recurso
- 19. ¿Forma y/o biblioteca de imágenes sin pérdida más pequeña?
- 20. fuente en 'GraphicsPath.AddString' es más pequeña que la fuente habitual
- 21. ¿Creando una réplica más pequeña de un div?
- 22. Inicialización matriz de caracteres con la cadena más pequeña literal
- 23. ¿Cómo puedo especificar una fuente más pequeña que textAppearanceSmall?
- 24. configurando la imagen para UIBarButtonItem - imagen estirada
- 25. No puedo establecer la imagen para UIBarButtonItem
- 26. Cómo cambiar el tamaño de imagen UIBarButtonItem
- 27. Reemplazar UIBarButtonItem con UIActivityIndicatorView
- 28. optimización de cadena pequeña para vector?
- 29. ¿Cómo creo un AuthorizeAttribute personalizado que sea específico para el área, el controlador y la acción?
- 30. Cómo deshabilitar UIBarButtonItem?
Solo mencionar esto (realmente debería ser obvio a partir de la pregunta, pero aparentemente no lo es): no se trata de reducir el tamaño del botón. Se trata de reducir el área que responde a los toques del botón. Por lo general, esa área es igual al tamaño del botón, a excepción de los elementos del botón de barra donde el área activa es algo más grande que la barra misma para que sea más fácil de tocar. – mrueg