web-dev-qa-db-ja.com

iPhoneでUISegmentedControlに画像を設定するにはどうすればよいですか?

私はiPhone開発に不慣れです。 2つのセグメントを持つUISegmentedControlを作成しました。タイトルではなく、セグメントごとに画像を表示したい。これが私のコードです

NSArray *itemArray = [NSArray arrayWithObjects: @"segment1", @"segment2", nil];
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray];
segmentedControl.frame = CGRectMake(5,100,300,40);
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentedControl.selectedSegmentIndex = 1;
[self.view addSubview:segmentedControl];
[segmentedControl release]; 

ただし、タイトル、segment1、segment2を表示する代わりに、私が持っている画像に置き換える必要があります。

16
Warrior

それはあなたが持っていたものとほぼ同じで、NSStringsの代わりにUIImagesの配列を渡すだけです。

NSArray *itemArray = [NSArray arrayWithObjects:
    [UIImage imageNamed:@"segment1.png"],
    [UIImage imageNamed:@"segment2.png"],
    nil];
27
drawnonward

実行時にイメージを変更する場合は、次の方法を使用します。

- (void)setImage:(UIImage *)image forSegmentAtIndex:(NSUInteger)segment

例えば。:

[segmentedControl setImage:[UIImage imageNamed:@"segment1.png"] forSegmentAtIndex:0];
23
snibbe

Interface BuilderAttributes Inspectorタブ)で簡単に実行できます。

Image setting with IB

また、1つのセグメントを画像で設定し、もう1つのセグメントをテキストで設定することもできます。

Result

ハッピーxCoding! )

13
Anton Gaenko

Interface Builderユーザーの場合、「renderas」をデフォルトではなく「元の画像」として設定します。私の場合、実行後に表示されます。それはうまくいくかもしれません。 @jcpennypincher enter image description here

4
Albert Zou

Xcode 4.6.3では、セグメントコントロールに画像を追加するオプションがInterfaceBuilderにあります。

1
Nikhil Dinesh