11

selectedの状態のアイコン画像を設定するにはどうすればよいUISegmentedControlですか? 本当にUISegmentedControlこの機能が欠けているのでしょうか、それともスキルが欠けているだけですか?

4

6 に答える 6

20
   [segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];

-(void)segmentAction:(UISegmentedControl*)sender {

    [sender setImage:[UIImage imageNamed:@"image.png"] forSegmentAtIndex:sender.selectedSegmentIndex];

}
于 2012-05-07T10:08:11.020 に答える
3

ここでは、プログラムで 2 つの UISegmentedControl 要素を作成し、イメージ アイコンを設定できます。

UISegmentedControl *switchView=[[UISegmentedControl alloc] initWithItems:[[[NSMutableArray alloc] initWithObjects:@"Yes",@"No",nil] autorelease]];
[switchView setFrame:CGRectMake(180,802,94,27)];
switchView.selectedSegmentIndex=1;
switchView.segmentedControlStyle=UISegmentedControlStyleBar;
[switchView setImage:[UIImage imageNamed:@"switchBlueBg.png"] forSegmentAtIndex:0];   // set icon for when selected
[switchView setImage:[UIImage imageNamed:@"switchOffPlain.png"] forSegmentAtIndex:1];  //set icon for when unselected
[switchView addTarget:self action:@selector(checkOnOffState:) forControlEvents:UIControlEventValueChanged];             
[scrollview addSubview:switchView];

UISegmentedControl *switchView1=[[UISegmentedControl alloc] initWithItems:[[[NSMutableArray alloc] initWithObjects:@"Yes",@"No",nil] autorelease]];
[switchView1 setFrame:CGRectMake(180,1003,94,27)];
switchView1.selectedSegmentIndex=1;
switchView1.segmentedControlStyle=UISegmentedControlStyleBar;
[switchView setImage:[UIImage imageNamed:@"switchBlueBg.png"] forSegmentAtIndex:0];  // set icon for when selected
[switchView setImage:[UIImage imageNamed:@"switchOffPlain.png"] forSegmentAtIndex:1];  ////set icon for when unselected
[switchView1 addTarget:self action:@selector(checkOnOffState1:) forControlEvents:UIControlEventValueChanged];
[scrollview addSubview:switchView1];



-(IBAction)checkOnOffState:(id)sender
{
    UISegmentedControl* tempSeg=(UISegmentedControl *)sender;

    if(tempSeg.selectedSegmentIndex==0)
    {
        //your codes
    }
    else
    {
        //your codes
    }   
}
于 2012-05-07T10:06:43.093 に答える
0

1 行のコード[uisegmentButtonRef setImage:[UIImage imageNamed:@"allbtndown.png"] forSegmentAtIndex:segmentIndex];を使用して設定できます。

Xibで使用する場合は、画像を見つけてください

ここに画像の説明を入力

于 2012-05-07T10:07:01.490 に答える
0

@Kuldeepの回答の強化

セグメントコントロールに 2 つ以上のコントロールがある場合があります

[_segmentcontrol addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];

このコードを使用するよりもすべての画像を別の方法で置き換えたい場合..

-(void)segmentAction:(UISegmentedControl*)sender
{
    if(sender.selectedSegmentIndex==0)
    {
        [sender setImage:[UIImage imageNamed:@"calf_selected.png"] forSegmentAtIndex:sender.selectedSegmentIndex];//0 index
        [sender setImage:[UIImage imageNamed:@"wrist.png"] forSegmentAtIndex:1];
    }
    else
    {
        [sender setImage:[UIImage imageNamed:@"calf.png"] forSegmentAtIndex:sender.selectedSegmentIndex];//for 1 index
        [sender setImage:[UIImage imageNamed:@"wrist_selected.png"] forSegmentAtIndex:0];
    }
}
于 2014-10-15T13:55:17.277 に答える