【问题标题】:Space between uibarbuttons in navigation bar, Xcode 6.1导航栏中uibarbuttons之间的空间,Xcode 6.1
【发布时间】:2015-03-24 07:40:31
【问题描述】:

我在这里尝试了几乎所有的答案,如何删除下面显示的两个 uibarbuttons 之间的空白我使用的代码是

UIButton *backBTN= [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
[backBTN addTarget:self action:@selector(backACT:) forControlEvents:UIControlEventTouchUpInside];
[backBTN setBackgroundImage:[UIImage imageNamed:@"menu_icon.png"] forState:UIControlStateNormal];
UIBarButtonItem *backkb = [[UIBarButtonItem alloc] initWithCustomView:backBTN];

// self.navigationItem.leftBarButtonItem = backkb;

UIButton *homeBTN= [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
[homeBTN addTarget:self action:@selector(homeACT:) forControlEvents:UIControlEventTouchUpInside];
[homeBTN setBackgroundImage:[UIImage imageNamed:@"logout_btn.png"] forState:UIControlStateNormal];
UIBarButtonItem *btnhome = [[UIBarButtonItem alloc] initWithCustomView:homeBTN];
//  btnhome.imageInsets = UIEdgeInsetsMake(-10, 0, 0, 0);
[self.navigationItem setLeftBarButtonItems:[NSArray arrayWithObjects: backkb, btnhome, nil]];
self.navigationItem.hidesBackButton = YES;

【问题讨论】:

标签: ios ios8 xcode6.1


【解决方案1】:

试试这个,

    // Create a UIView to add both buttons
    UIView *leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 60, 30)];

    UIButton *backBTN= [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
    [backBTN addTarget:self action:@selector(backACT:) forControlEvents:UIControlEventTouchUpInside];
    [backBTN setBackgroundImage:[UIImage imageNamed:@"menu_icon.png"] forState:UIControlStateNormal];

    //Add button to UIView
    [leftView addSubview:backBTN];

    UIButton *homeBTN= [[UIButton alloc] initWithFrame:CGRectMake(30, 0, 30, 30)];
    [homeBTN addTarget:self action:@selector(homeACT:) forControlEvents:UIControlEventTouchUpInside];
    [homeBTN setBackgroundImage:[UIImage imageNamed:@"logout_btn.png"] forState:UIControlStateNormal];

    //Add button to UIView
    [leftView addSubview:homeBTN];

    //Set UIView as CustomView for bar button
    UIBarButtonItem *leftBarButton = [[UIBarButtonItem alloc] initWithCustomView:leftView];
    [self.navigationItem setLeftBarButtonItems:[NSArray arrayWithObjects: leftBarButton, nil]];
    self.navigationItem.hidesBackButton = YES;

我已经尝试过了,输出为 使用一些背景颜色来了解边框

【讨论】: