我试图将一些文本集中在 UIToolBar 上,两边都有一个按钮,但我遇到了一些问题。
我有以下代码:
UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:toolbarInitialFrame];
toolBar.barStyle = UIBarStyleBlackTranslucent;
UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 25)];
[label setText:@"Title"];
[label setBackgroundColor:[UIColor clearColor]];
[label setTextColor:[UIColor whiteColor]];
[label setFont:[UIFont boldSystemFontOfSize:16]];
UIBarButtonItem * labelEmu=[[UIBarButtonItem alloc] initWithCustomView:label];
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelAlarmAndDismissDatePicker:)];
UIBarButtonItem *spacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(setAlarmAndDismissDatePicker:)];
所以我想要的是cancelButton
左侧的取消按钮 ( ),labelEmu
中间居中的标题 ( ),doneButton
右侧的完成按钮 ( )。像这样的东西:
|[Cancel] Title [Done]|
我希望我可以通过以下方式实现这一目标:
[toolBar setItems:[NSArray arrayWithObjects: cancelButton, spacer, labelEmu, spacer, doneButton, nil]];
但不幸的是,我得到的是:
|[Cancel]Title [Done]|
经过一番玩弄,我发现这一行:
[toolBar setItems:[NSArray arrayWithObjects: cancelButton, spacer, labelEmu, spacer, nil]];
...产生这个:
|[Cancel] Title |
标题居中的位置,忽略了取消按钮存在的事实。但是当我这样做时:
[toolBar setItems:[NSArray arrayWithObjects: spacer, labelEmu, spacer, doneButton, nil]];
...它产生这个:
| Title [Done]|
标题位于完成按钮的最左边缘和右侧之间的空间中。它不会像忽略取消按钮那样忽略完成按钮。
谁能指出我正确的方向来获得我所追求的东西?对不起所有的 naff ASCII 图!:)