将UIBarButtonItem居中在UIToolbar中并添加自定义文本

时间:2011-12-29 15:23:58

标签: iphone objective-c ios cocoa-touch

我需要在ToolBar的中心添加一个按钮。我已成功将按钮添加到工具栏部件。我的问题如下;

1。)我需要将这个按钮居中。它应该位于工具栏的中心

2。)显示刷新按钮图像后,我需要有文本。

toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0 , 320 , 60)];

    NSMutableArray* button = [[NSMutableArray alloc] initWithCapacity:1];

    UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refreshButtonAction:)];

    [button addObject:barButton];

    [toolBar setItems:button animated:NO];

    [self.view addSubview:toolBar];

2 个答案:

答案 0 :(得分:17)

1. 在工具栏项目数组中的条形按钮前后添加灵活的间隔符:

toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0 , 320 , 60)];

UIBarButtonItem *flexibleSpace =  [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refreshButtonAction:)];

NSArray *toolbarItems = [NSArray arrayWithObjects:flexibleSpace, barButton, flexibleSpace];

[toolBar setItems:toolbarItems animated:NO];

[self.view addSubview:toolBar];

在Interface Builder中更容易配置工具栏。如果您的视图控制器位于UINavigationController堆栈内,您仍然可以使用IB创建UIBarButtonItem的插座集合,并在self.toolbarItems中设置-viewDidLoad

2. 要在工具栏中获取自定义内容,您可以使用自定义视图创建条形按钮项目:

UIView *customView = <# anything, could be a UILabel #>;
UIBarButtonItem *customItem = [[UIBarButtonItem alloc] initWithCustomView:customView];

答案 1 :(得分:1)

我知道这可以在IB中完成,但我相信如果你想要一个按钮中心,你需要在两侧添加一个固定或灵活的空间按钮,以保持你的按钮在中间。如果你打算只使用代码...尝试将按钮夹在2个空格按钮之间。