ナビゲーション バーに UISegmentedControl を 1 つ追加します。ビューが縦向きに読み込まれると、そのフレームは正しく見えます。ただし、横向きに回転すると、UIBarButtonItem が大きくなります。再度縦向きに回転しても、大きい方のままです。
いくつかのコード スニペットを次に示します。
#define SEGMENT_WIDTH 100.0
#define SEGMENT_HEIGHT 32.0
CGRect segmentedControlRect = CGRectMake(0, 0, SEGMENT_WIDTH, SEGMENT_HEIGHT);
segmentedControl = [[UISegmentedControl alloc] initWithFrame:segmentedControlRect];
segmentedControl.momentary = NO;
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBordered;
[segmentedControl addTarget:self action:@selector(tabButtonPressed:) forControlEvents:UIControlEventValueChanged];
UIBarButtonItem *segmentBarBtn = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];
self.navigationItem.rightBarButtonItem = segmentBarBtn;
一部のスクリーンショットは次のとおりです。
ポートレートモードからロード。
ランドスケープモードに回転します。
ポートレートモードに戻ります。
任意の提案をいただければ幸いです。