2012-05-07 13 views
8

मैंकी स्थिति के लिए आइकन छवि कैसे सेट कर सकता हूं। UISegmentedControl वास्तव में इस कार्यक्षमता को याद कर रहा है या यह सिर्फ मुझे गायब कौशल है?UISegmentedControl चयनित राज्य आइकन छवि

क्या ऐसा करने के लिए कोई कामकाज है?

किसी भी उत्तर की सराहना की।

चीयर्स, राफाल

+0

इस लिंक http://stackoverflow.com/questions/1281601/custom-uisegmentedcontrol – iMash

+1

मैं लक्ष्य निर्धारित करने और फिर बदल कर लक्षित कार्रवाई से छवि आप के लिए काम करेंगे लगता है का पालन करें। – Kuldeep

उत्तर

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

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

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

} 
3

यहाँ मैं प्रोग्राम के रूप में यू छवि आइकन सेट कर सकते हैं दो 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 
    } 
} 
0

आप कोड की एक पंक्ति का उपयोग करके सेट कर सकते हैं [uisegmentButtonRef setImage: [UIImage imageNamed: @ "allbtndown.png"] forSegmentAtIndex: segmentIndex];

आप xib से उपयोग करते हैं छवि

enter image description here

0

संवर्धन की @ कुलदीप के उत्तर प्राप्त करें

आप segmentcontrol में दो या अधिक नियंत्रण हो सकता है

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

.. यदि आप अलग तरह से सभी छवियों को बदलने के लिए की तुलना में इस कोड का उपयोग चाहते

-(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]; 
    } 
} 
3
[segmentControl setBackgroundImage:image 
          forState:UIControlStateSelected 
         barMetrics:UIBarMetricsDefault] 

तुम भी प्रभाव में आने के लिए UIControlStateNormal के लिए एक छवि सेट करना होगा।

Apple documentation

+0

इसके लिए धन्यवाद: 'आपको प्रभावी होने के लिए यूआईसींट्रोलस्टेट नॉर्मल के लिए एक छवि भी सेट करनी होगी' –

संबंधित मुद्दे