UIToolbarに設置するアイテムを中央に揃える

前回のセグメントコントロールは、横幅で強引に中央揃えにしていましたが、適当にいじったらやり方を見つけたのでメモしておきます。そのやり方は、「UIBarButtonItem」の「UIBarButtonSystemItemFlexibleSpace」というスタイルを適用したアイテムを使う方法です。下記コードでは前回同様、セグメントコントロールを使っていますが、普通のバーボタンでもきちんと整列されます。

```- (void)viewDidLoad {
[super viewDidLoad];

<pre><code>CGRect toolbarFrame = CGRectMake(0, 0, 320, 44);
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:toolbarFrame];
[self.view addSubview:toolbar];
UISegmentedControl *segment = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Seg1", @"Seg2", nil]];
[segment addTarget:self action:@selector(doSegmentAction:) forControlEvents:UIControlEventValueChanged];
[segment setSelectedSegmentIndex:0];
[segment setSegmentedControlStyle:UISegmentedControlStyleBar];
UIBarButtonItem *segItem = [[UIBarButtonItem alloc] initWithCustomView:segment];

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

[toolbar setItems:[NSArray arrayWithObjects:space, segItem, space, nil]];

[segment release];
[segItem release];
[space release];
[toolbar release];
</code></pre>

}

<ul>
<li>(void)doSegmentAction:(UISegmentedControl*)seg {
NSLog(@"doSegmentAction start.");
switch (seg.selectedSegmentIndex) {
case 0:
NSLog(@"Seg1 is clicked.");
break;
case 1:
NSLog(@"Seg2 is clicked.");
break;
}
}
```

この記事が役に立った場合、シェアしていただけると励みになります!!