Как мне удалить горизонтальные отступы слева и справа от пользовательских левых и правых элементов UINavigationBar? Кажется, есть ~ 10 точек заполнения, которые iOS устанавливает по умолчанию.
Я настраиваю кнопки левой и правой панели навигации (я отказался от попыток установить свой собственный backButtonItem, поэтому я просто использую leftBarButtonItem) .
В любом случае (влево или вправо) нажатие этих настраиваемых кнопок указывает на то, что Apple, похоже, сохраняет некоторые отступы слева от leftBarButtonItem, и справа от rightBarButtonItem; независимо от того, насколько широкими я делаю настраиваемый фон и свойства изображения UIButton, я помещаю внутри элемента кнопки левой / правой панели в качестве настраиваемого представления.
Поскольку UIBarButtonItems не имеют "рамки", к которой я могу получить доступ, я не могу их разместить в их супервизоре, как я могу обычные UIViews.
Есть предложения, как удалить это заполнение по умолчанию? См. Прикрепленный снимок экрана, чтобы увидеть бит, который я пытаюсь уменьшить до нулевой ширины. На снимке экрана значок плюса смещен вправо, потому что я сделал его вставкой; но выделенное фоновое изображение, также предположительно использующее эту вставку, обрезается с правой стороны).
См. изображение по адресу: https://skitch.com/starbaseweb/rj2e5/ios-simulator
Для ссылка, вот как я ' m создавая свой собственный UIBarButtonItem (в данном случае это правая кнопка):
- (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;
}