如何减少 UINavigationBar IOS 7 中 UIBarButton 项之间的填充?

Posted

技术标签:

【中文标题】如何减少 UINavigationBar IOS 7 中 UIBarButton 项之间的填充?【英文标题】:How to reduce padding between UIBarButton items in UINavigationBar IOS 7? 【发布时间】:2013-12-12 07:25:46 【问题描述】:
 UIButton *addButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [addButton setImage:[UIImage imageNamed:@"addButton.png"] forState:UIControlStateNormal];
    [addButton addTarget:self action:@selector(addSubProperty:) forControlEvents:UIControlEventTouchUpInside];
    [addButton setFrame:CGRectMake(0, 0,51,44)];

    UIBarButtonItem *firstBarButton = [[UIBarButtonItem alloc] initWithCustomView:addButton];

    UIButton *deleteButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [deleteButton setImage:[UIImage imageNamed:@"deleteButton.png"] forState:UIControlStateNormal];
    [deleteButton addTarget:self action:@selector(deleteProperty:) forControlEvents:UIControlEventTouchUpInside];
    [deleteButton setFrame:CGRectMake(0, 0,50,44)];

    UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
    [negativeSpacer setWidth:-10];


    UIBarButtonItem *secondBarButton = [[UIBarButtonItem alloc]initWithCustomView:deleteButton];

    NSArray *navBtnArr = [[NSArray alloc] initWithObjects:negativeSpacer,firstBarButton,secondBarButton, nil];


    self.navigationItem.rightBarButtonItems = navBtnArr;

在此之后我得到了这个结果,正如你们所看到的,我确实能够将我的第一个 barbutton 向左移动那个negativeSpacer,但我不知道如何减少这两个按钮之间的空间。

通过这样做,我的背部也会消失,任何想法都会非常感激。

【问题讨论】:

这个链接对你有用***.com/questions/18897470/… 【参考方案1】:

使用 Xcode 6.4,这对我来说非常棒,只需 1 行代码! https://***.com/a/26469607/3634990

self.myBarButtonItem.imageInsets = UIEdgeInsetsMake(0, 25, 0, -25);

请注意,这会移动图像位置,但不会移动触摸区域,因此仅当您想稍微移动图像时,它才是一个很好的解决方案。

【讨论】:

以上是关于如何减少 UINavigationBar IOS 7 中 UIBarButton 项之间的填充?的主要内容,如果未能解决你的问题,请参考以下文章

如何在中间对齐自定义 UINavigationBar 标题(UILabel)(iOS)

在 ios 7 中如何增加 UINavigationbar 的大小

iOS7如何绘制透明的UIToolbar或UINavigationBar

如何在 iOS7 中设置 UINavigationBar? [复制]

UINavigationBar 和新的 iOS 5+ 外观 API - 如何提供两个背景图像?

如何在IOS 11中为新的大型条设置渐变颜色的UINavigationbar?