Apple のドキュメントには次のように書かれています。
UIBarButtonSystemItemFlexibleSpace 他の項目の間に追加する空白スペース。スペースは他のアイテム間で均等に分配されます。この値を設定すると、他のアイテム プロパティは無視されます。
それは少しあいまいです (正確にどのスペースが均等に分散されているのでしょうか?) そこで、テスト方法を書きました:
-(void) createToolbar {
BOOL stuffInTopLeftCorner = NO;
UIToolbar* bar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 1024, 44)];
self.bar = bar;
[self addSubview:bar];
UILabel* titleLabel = [[UILabel alloc]initWithFrame:CGRectZero];
titleLabel.text = @"Centered title";
titleLabel.font = [UIFont systemFontOfSize:30];
[titleLabel sizeToFit];
CGSize titleSize = [titleLabel bounds].size;
NSLog(@"titleSize is %g %g", titleSize.width, titleSize.height);
UIBarButtonItem* titleItem = [[UIBarButtonItem alloc]initWithCustomView:titleLabel];
UIBarButtonItem* flexibleSpace = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UILabel* leftLabel = [[UILabel alloc]initWithFrame:CGRectZero];
leftLabel.text = @"Stuff in top left corner";
leftLabel.font = [UIFont systemFontOfSize:30];
[leftLabel sizeToFit];
UIBarButtonItem* topLeftCornerItem = [[UIBarButtonItem alloc]initWithCustomView:leftLabel];
NSMutableArray* items = [NSMutableArray arrayWithObjects: flexibleSpace, titleItem, flexibleSpace, nil];
if (stuffInTopLeftCorner) {
[items insertObject:topLeftCornerItem atIndex:0];
}
bar.items = items;
}
上記のコードを使用すると、次のようになります。
そして、stuffInTopLeftCorner を YES に変更すると、次のようになります。
タイトルの左側に何かを追加しても、そのタイトルはまったく移動しなかったようです。
私の質問は、どちらの側に何があるかに関係なく、常にタイトルを中央に配置するということですか?