¿Cómo elimino el relleno horizontal a la izquierda y derecha de los elementos personalizados de UINavigationBar a la izquierda y a la derecha? Parece que hay ~ 10 puntos de relleno que iOS establece de forma predeterminada.Colocación de una vista personalizada basada en UIBarButtonItem en la barra de navegación sin relleno horizontal predeterminado
Estoy personalizando los botones de la barra de navegación izquierda y derecha (he renunciado a intentar establecer mi propio backButtonItem, así que estoy usando el leftBarButtonItem).
En cualquier caso (izquierda o derecha), presionar estos botones personalizados indica que Apple parece conservar algo de relleno a la izquierda del artículo LeftBarButtonItem, ya la derecha del elementoBarButtonItem derecho; Independientemente de cuán ancho haga las propiedades de fondo e imagen personalizadas del UIButton que coloco dentro del elemento del botón de la barra izquierda/derecha como su vista personalizada.
Dado que UIBarButtonItems no tiene ningún "marco" al que pueda acceder, no puedo ubicarlos dentro de su supervista como lo hago con UIViews normales.
¿Alguna sugerencia sobre cómo eliminar este relleno predeterminado? Vea la captura de pantalla adjunta para ver el bit que estoy tratando de reducir a un ancho cero. En la captura de pantalla, el icono más aparece desplazado hacia la derecha porque le di un recuadro; pero la imagen de fondo resaltada, también presumiblemente usando ese recuadro, se recorta en su lado derecho).
Ver la imagen en: https://skitch.com/starbaseweb/rj2e5/ios-simulator
Como referencia, así es como estoy creando mi costumbre UIBarButtonItem (en este caso, es el botón de la derecha):
- (UIBarButtonItem *)customAddButtonItemWithTarget:(id)target action:(SEL)action {
UIButton *customButtonView = [UIButton buttonWithType:UIButtonTypeCustom];
customButtonView.frame = CGRectMake(0.0f, 0.0f, 45.0f, 44.0f);
[customButtonView setBackgroundImage:
[UIImage imageNamed:@"bgNavBarButton-OutsideRight-Normal.png"]
forState:UIControlStateNormal];
[customButtonView setBackgroundImage:
[UIImage imageNamed:@"bgNavBarButton-OutsideRight-Highlighted.png"]
forState:UIControlStateHighlighted];
[customButtonView setImage:
[UIImage imageNamed:@"bgNavBarButton-Add-Normal.png"]
forState:UIControlStateNormal];
[customButtonView setImage:
[UIImage imageNamed:@"bgNavBarButton-Add-Highlighted.png"]
forState:UIControlStateHighlighted];
[customButtonView addTarget:target action:action
forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *customButtonItem = [[[UIBarButtonItem alloc]
initWithCustomView:customButtonView] autorelease];
[customButtonView setImageEdgeInsets:UIEdgeInsetsMake(0.0f, 10.0f, 0.0f, 0.0f)];
//customButtonItem.imageInsets = UIEdgeInsetsMake(0.0f, 10.0f, 0.0f, 0.0f);
return customButtonItem;
}
+1: tuve este problema y probé varias cosas ... incluyendo inserciones, y solo haciendo la imagen a -10 en la posición x, etc. No tuve suerte, así que solo guardé el pequeño relleno y rehice el imagen para hacerlo más apropiado. buena suerte. –