1 前言
UISegmentedController類似於單選按鈕,可以提供選擇操作,今天我們就來學習一下其簡單用法。
2 UISegmentedController簡介
上代碼
.h文件 #import <UIKit/UIKit.h> @interface ZYViewController : UIViewController @property(nonatomic,strong) UISegmentedControl *mySegmentedControl; @end #import <UIKit/UIKit.h> @interface ZYViewController : UIViewController @property(nonatomic,strong) UISegmentedControl *mySegmentedControl; @end .m文件: @synthesize mySegmentedControl; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.view.backgroundColor = [UIColor whiteColor]; //初始化內容數組 NSArray *segments = [[NSArray alloc] initWithObjects:@"iPhone",[UIImage imageNamed:@"ipad.png"],@"iPod",@"iMac",nil]; // NSArray *segments = [[NSArray alloc] initWithObjects:@"iPhone",@"iPad",@"iPod",@"iMac",nil]; //構造mySegmentedControl的外形 self.mySegmentedControl = [[UISegmentedControl alloc] initWithItems:segments]; CGRect segmentedFrame = self.mySegmentedControl.frame; segmentedFrame.size.height = 64.0f; segmentedFrame.size.width = 300.0f; self.mySegmentedControl.frame = segmentedFrame; self.mySegmentedControl.center = self.view.center; self.mySegmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;//修改樣式 self.mySegmentedControl.momentary = YES;//選擇了某項後,馬上變回原始狀態 [self.mySegmentedControl addTarget:self action:@selector(segmentChanged:) forControlEvents:UIControlEventValueChanged];//添加事件 [self.view addSubview:self.mySegmentedControl]; } -(void)segmentChanged:(UISegmentedControl *)paramSender{ if ([paramSender isEqual:self.mySegmentedControl]) { //獲得索引位置 NSInteger selectedSegmentIndex = [paramSender selectedSegmentIndex]; //獲得對應索引位置的text值 NSString *selectedSegmentText = [paramSender titleForSegmentAtIndex:selectedSegmentIndex]; NSLog(@"Segment %ld with %@ text is selected",(long)selectedSegmentIndex,selectedSegmentText); } } @synthesize mySegmentedControl; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.view.backgroundColor = [UIColor whiteColor]; //初始化內容數組 NSArray *segments = [[NSArray alloc] initWithObjects:@"iPhone",[UIImage imageNamed:@"ipad.png"],@"iPod",@"iMac",nil]; // NSArray *segments = [[NSArray alloc] initWithObjects:@"iPhone",@"iPad",@"iPod",@"iMac",nil]; //構造mySegmentedControl的外形 self.mySegmentedControl = [[UISegmentedControl alloc] initWithItems:segments]; CGRect segmentedFrame = self.mySegmentedControl.frame; segmentedFrame.size.height = 64.0f; segmentedFrame.size.width = 300.0f; self.mySegmentedControl.frame = segmentedFrame; self.mySegmentedControl.center = self.view.center; self.mySegmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;//修改樣式 self.mySegmentedControl.momentary = YES;//選擇了某項後,馬上變回原始狀態 [self.mySegmentedControl addTarget:self action:@selector(segmentChanged:) forControlEvents:UIControlEventValueChanged];//添加事件 [self.view addSubview:self.mySegmentedControl]; } -(void)segmentChanged:(UISegmentedControl *)paramSender{ if ([paramSender isEqual:self.mySegmentedControl]) { //獲得索引位置 NSInteger selectedSegmentIndex = [paramSender selectedSegmentIndex]; //獲得對應索引位置的text值 NSString *selectedSegmentText = [paramSender titleForSegmentAtIndex:selectedSegmentIndex]; NSLog(@"Segment %ld with %@ text is selected",(long)selectedSegmentIndex,selectedSegmentText); } }
運行後結果:
點擊各個按鈕後控制太顯示如下:
2015-07-23 10:30:00.543 UISegmentedControllerTest[985:c07] Segment 0 with iPhone text is selected
2015-07-23 10:30:01.045 UISegmentedControllerTest[985:c07] Segment 1 with (null) text is selected
2015-07-23 10:30:01.501 UISegmentedControllerTest[985:c07] Segment 2 with iPod text is selected
2015-07-23 10:30:01.862 UISegmentedControllerTest[985:c07] Segment 3 with iMac text is selected