- 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
Interface file for the view controller - MySegmentedButtonViewController.h
1 2 3 4 5 6 7 | #import <UIKit/UIKit.h> @interface MySegmentedButtonViewController : UIViewController @property ( nonatomic , strong) UISegmentedControl *mySegmentedControl; @end |
Implementation file for the view controller - MySegmentedButtonViewController.m
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | #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 |
No comments:
Post a Comment
NO JUNK, Please try to keep this clean and related to the topic at hand.
Comments are for users to ask questions, collaborate or improve on existing.