我有三个UIBarButtonItem创建如下.它们左对齐,我想对齐中心,所以右侧没有间隙.我没有看到对齐属性UIToolBar.还有另一种方法来实现这一目标吗?
//create some buttons
UIBarButtonItem *aboutButton = [[UIBarButtonItem alloc] initWithTitle:@"About" style:UIBarButtonItemStyleBordered target:self action:@selector(showAbout:)];
[toolbar setItems:[NSArray arrayWithObjects:settingsButton,deleteButton,aboutButton,nil]];
//Add the toolbar as a subview to the navigation controller.
[self.navigationController.view addSubview:toolbar];
Run Code Online (Sandbox Code Playgroud) 我用代码创建一个UIToolbar,用界面构建器创建另一个UIToolbar.但是,发现两个工具栏有不同的左右填充,如下所示:
来自Interface Builder:

来自代码:

UIImage *buttonImage = [[UIImage imageNamed:@"button.png"] stretchableImageWithLeftCapWidth:10 topCapHeight:0];
UIButton *btnTest = [UIButton buttonWithType:UIButtonTypeCustom];
[btnTest setBackgroundImage:buttonImage forState:UIControlStateNormal];
[btnTest setTitle:@"Back" forState:UIControlStateNormal];
[btnTest.titleLabel setFont:[UIFont boldSystemFontOfSize:13]];
[btnTest setBackgroundImage:[imgToolbarButton stretchableImageWithLeftCapWidth:5 topCapHeight:0] forState:UIControlStateNormal];
[btnTest addTarget:self action:@selector(clearDateEdit:) forControlEvents:UIControlEventTouchUpInside];
btnTest.frame = CGRectMake(0.0, 0.0, 50, 30);
UIBarButtonItem *btnTestItem = [[UIBarButtonItem alloc] initWithCustomView:btnTest];
[self.toolbar setItems:[NSArray arrayWithObjects:btnTestItem,nil]];
[btnTestItem release];
Run Code Online (Sandbox Code Playgroud)
我的问题是如何通过代码调整UIToolbar的左右填充?
更新
我发现这个对齐问题只发生在带有UIButton的customView的UIBarButtonItem上,UIBarButtonItem对齐很好.知道是什么导致这个或解决这个问题.
我现在能想到的唯一解决方案是手动设置框架.