3

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 に変更すると、次のようになります。

ここに画像の説明を入力

タイトルの左側に何かを追加しても、そのタイトルはまったく移動しなかったようです。

私の質問は、どちらの側に何があるかに関係なく、常にタイトルを中央に配置するということですか?

4

1 に答える 1

2

私が知る限り、はい、それが可能であると仮定すると、常にタイトルを中央に配置します.

于 2013-01-21T02:18:21.307 に答える