強調表示された状態と通常の状態の画像を配置する単純なセグメント コントロールがあります。
画像にぴったり合うように、セグメント コントロールのフレームを設定しました。iOS 6 まではまったく問題なく動作します。予期しない動作を示し、セグメント コントロールの高さを必要な高さに変更しますが、幅は変更されません。画像はセグメントよりも小さいため、画像サイズまたはセグメント制御プロパティのいずれかで調整が必要です。
次のコードは次のとおりです。
- (void)initTitleControl:(id)delegate {
UIImage *leftImage;
UIImage *rightImage;
UIImage *leftImageText = [GBImageManager drawTextOnImage:leftImage color:UIColorFromRGB(0xffffff) text:@"List"];
UIImage *rightImageText = [GBImageManager drawTextOnImage:rightImage color:UIColorFromRGB(0x076aac) text:@"Map"];
UISegmentedControl *segmentControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:leftImageText, rightImageText, nil]];
[segmentControl setSelectedSegmentIndex:0];
[segmentControl setTintColor:UIColorFromRGB(0x076aac)];
[segmentControl setSegmentedControlStyle:UISegmentedControlStyleBar];
[segmentControl setMomentary:YES];
CGRect frame = CGRectMake(0, 0, 105, 32);
[segmentControl setFrame:frame];
[segmentControl addTarget:self action:@selector(onSegmentedChanged:) forControlEvents:UIControlEventValueChanged];
self.navigationItem.titleView = segmentControl;
[delegate setSegmentedControl:segmentControl];
}
以前の iOS バージョンで正常に動作するかどうか、なぜ iOS 6 でこの動作が行われるのかわかりません。iOS 6 で予期しない動作をする他のコントロールはどれですか?