iOS create UISegmentedControl programmatically

A segmented control is a UI Component that display a series of buttons that are stuck to each other and displayed horizontally. You can relate this to a group of radio buttons on a HTML form where the user can make a choice. In this example we will learn the following
  • Create and initialize a UISegmentControl from an array list of Items
  • Set style for the segmented control
  • Default a specific segment as selected
  • Remove a segment from the control
  • Add a new segment to the control
  • Attach a target action to the control to capture the selection made by the user
  • You can make the control work like a UIButton that pops back up by setting the momentary property to TRUE

iOS create UISegmentedControl programmatically
iOS UISegmentedControl console log

Interface file for the view controller - MySegmentedButtonViewController.h

#import <UIKit/UIKit.h>

@interface MySegmentedButtonViewController : UIViewController

@property (nonatomic, strong) UISegmentedControl *mySegmentedControl;

@end

Implementation file for the view controller - MySegmentedButtonViewController.m

#import "MySegmentedButtonViewController.h"

@interface MySegmentedButtonViewController ()

@end

@implementation MySegmentedButtonViewController

@synthesize mySegmentedControl;

- (void)viewDidLoad
{
    [super viewDidLoad];
 // Do any additional setup after loading the view, typically from a nib.
    
    //set the view background to white
    self.view.backgroundColor = [UIColor whiteColor];
    
    //frame for the segemented button
    CGRect myFrame = CGRectMake(10.0f, 10.0f, 300.0f, 40.0f);
    
    //Array of items to go inside the segment control
    //You can choose to add an UIImage as one of the items instead of NSString
    NSArray *mySegments = [[NSArray alloc] initWithObjects: @"Red",
                         @"Blue", @"Green", @"Yellow", nil];
    
    //create an intialize our segmented control
    self.mySegmentedControl = [[UISegmentedControl alloc] initWithItems:mySegments];
    
    //set the size and placement
    self.mySegmentedControl.frame = myFrame;
    
    //set the style for the segmented control
    self.mySegmentedControl.segmentedControlStyle  = UISegmentedControlStyleBar;
    
    //remove the third index from the control
    [self.mySegmentedControl removeSegmentAtIndex:2
                                         animated:true];
    
    //add another control at the end
    [self.mySegmentedControl insertSegmentWithTitle:@"Brown"
                                        atIndex:3
                                        animated:true];

    
    //default the selection to second item
    [self.mySegmentedControl setSelectedSegmentIndex:1];
    
    //attach target action for if the selection is changed by the user
    [self.mySegmentedControl addTarget:self
                                action:@selector(whichColor:)
                                forControlEvents:UIControlEventValueChanged];
    
    //add the control to the view
    [self.view addSubview:self.mySegmentedControl];
    
}

- (void) whichColor:(UISegmentedControl *)paramSender{
    
    //check if its the same control that triggered the change event
    if ([paramSender isEqual:self.mySegmentedControl]){
    
        //get index position for the selected control
        NSInteger selectedIndex = [paramSender selectedSegmentIndex];
        
        //get the Text for the segmented control that was selected
        NSString *myChoice =
                    [paramSender titleForSegmentAtIndex:selectedIndex];
        //let log this info to the console
        NSLog(@"Segment at position %i with %@ text is selected",
              selectedIndex, myChoice);
    }
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

Reference


7 comments :

  1. There was once a time when I also deemed that we began to lose our direction cheap fifa 14 coins and become numb without too much affection in this material-flooding world. We were not sure whether the reason why we locked tightly our heart was to eliminate loneliness fifa 14 coins or to protect ourselves. We did it unconsciously with less and less emotion and smile. So someone said that I was awfully icy to others. Not until one day when I was stricken by a sense of gratitude cheap fifa 14 coins did I totally change myself.

    ReplyDelete
  2. how to reduce the size of the letter programmatically to fit in the segment perfectlty ..because when i enter words like open trades,closed trades some words gets hidden

    ReplyDelete