How to programmatically add a UISegmentedControl to a container view How to programmatically add a UISegmentedControl to a container view ios ios

How to programmatically add a UISegmentedControl to a container view


this one is perfect I tested.....

UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 435)];scroll.contentSize = CGSizeMake(320, 700);scroll.showsHorizontalScrollIndicator = YES;NSArray *itemArray = [NSArray arrayWithObjects: @"One", @"Two", @"Three", nil];UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray];segmentedControl.frame = CGRectMake(35, 200, 250, 50);segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;[segmentedControl addTarget:self action:@selector(MySegmentControlAction:) forControlEvents: UIControlEventValueChanged];segmentedControl.selectedSegmentIndex = 1;     [scroll addSubview:segmentedControl];[segmentedControl release]; [self.view addSubview:scroll];

Then add your method in your class.

- (void)MySegmentControlAction:(UISegmentedControl *)segment {        if(segment.selectedSegmentIndex == 0)    {        // code for the first button    } }

For deprecated UISegmentedControlStyle you can take a look on thisURL.


Try this link:

ADDING A SEGMENTED CONTROL PROGRAMMATICALLY

Updated:

import UIKitclass ViewController: UIViewController {  /**    Loads the view and in our case we override default loadView to provide    custom SegmentedControl.  */  override func loadView() {      super.loadView()      self.view.backgroundColor = UIColor.purpleColor()      println("Main view's loadView() called.")      // Initialize      let items = ["Purple", "Green", "Blue"]      let customSC = UISegmentedControl(items: items)      customSC.selectedSegmentIndex = 0      // Set up Frame and SegmentedControl      let frame = UIScreen.mainScreen().bounds      customSC.frame = CGRectMake(frame.minX + 10, frame.minY + 50,                                  frame.width - 20, frame.height*0.1)      // Style the Segmented Control      customSC.layer.cornerRadius = 5.0  // Don't let background bleed      customSC.backgroundColor = UIColor.blackColor()      customSC.tintColor = UIColor.whiteColor()      // Add target action method      customSC.addTarget(self, action: "changeColor:", forControlEvents: .ValueChanged)      // Add this custom Segmented Control to our view      self.view.addSubview(customSC)  }  /**    Handler for when custom Segmented Control changes and will change the    background color of the view depending on the selection.   */  func changeColor(sender: UISegmentedControl) {      println("Change color handler is called.")      print("Changing Color to ")      switch sender.selectedSegmentIndex {      case 1:          self.view.backgroundColor = UIColor.greenColor()          println("Green")      case 2:          self.view.backgroundColor = UIColor.blueColor()          println("Blue")      default:          self.view.backgroundColor = UIColor.purpleColor()          println("Purple")      }  }  override func viewDidLoad() {      super.viewDidLoad()      // Do any additional setup after loading the view, typically from a nib.  }  override func didReceiveMemoryWarning() {      super.didReceiveMemoryWarning()      // Dispose of any resources that can be recreated.  }}

SOURCE: http://www.richardhsu.me/


U can do like this...

UISegmentedControl *segmentControl = [[UISegmentedControl alloc]initWithItems:@[@"One",@"Two"]];[segmentControl setSegmentedControlStyle:UISegmentedControlStyleBar];segmentControl.frame = CGRectMake(10, 50, 300, 30);[segmentControl addTarget:self action:@selector(segmentedControlValueDidChange:) forControlEvents:UIControlEventValueChanged];[segmentControl setSelectedSegmentIndex:0];[scrollView addSubview:segmentControl];[segmentControl release];

Step 2:

-(void)segmentedControlValueDidChange:(UISegmentedControl *)segment{switch (segment.selectedSegmentIndex) {    case 0:{        //action for the first button (Current)        break;}    case 1:{        //action for the first button (Current)        break;}    }}