SegmentControl
#import
"
SegmentedControlTestViewController.h
"
@implementation SegmentedControlTestViewController
@synthesize segmentedControl;
/* ***************************************
Tasks
Initializing a Segmented Control
– initWithItems:
Managing Segment Content
– setImage:forSegmentAtIndex:
– imageForSegmentAtIndex:
– setTitle:forSegmentAtIndex:
– titleForSegmentAtIndex:
Managing Segments
– insertSegmentWithImage:atIndex:animated:
– insertSegmentWithTitle:atIndex:animated:
numberOfSegments property
– removeAllSegments
– removeSegmentAtIndex:animated:
selectedSegmentIndex property
Managing Segment Behavior and Appearance
momentary property
segmentedControlStyle property
tintColor property
– setEnabled:forSegmentAtIndex:
– isEnabledForSegmentAtIndex:
– setContentOffset:forSegmentAtIndex:
– contentOffsetForSegmentAtIndex:
– setWidth:forSegmentAtIndex:
– widthForSegmentAtIndex:
******************************************** */
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- ( void)viewDidLoad {
NSArray *segmentedArray = [[NSArray alloc]initWithObjects: @" 1 ", @" 2 ", @" 3 ", @" 4 ",nil];
// 初始化UISegmentedControl
UISegmentedControl *segmentedTemp = [[UISegmentedControl alloc]initWithItems:segmentedArray];
segmentedControl = segmentedTemp;
segmentedControl.frame = CGRectMake( 60.0, 10.0, 200.0, 50.0);
[segmentedControl setTitle: @" two " forSegmentAtIndex: 1]; // 设置指定索引的题目
[segmentedControl setImage:[UIImage imageNamed: @" lan.png "] forSegmentAtIndex: 3]; // 设置指定索引的图片
[segmentedControl insertSegmentWithImage:[UIImage imageNamed: @" mei.png "] atIndex: 2 animated:NO]; // 在指定索引插入一个选项并设置图片
[segmentedControl insertSegmentWithTitle: @" insert " atIndex: 3 animated:NO]; // 在指定索引插入一个选项并设置题目
[segmentedControl removeSegmentAtIndex: 0 animated:NO]; // 移除指定索引的选项
[segmentedControl setWidth: 70.0 forSegmentAtIndex: 2]; // 设置指定索引选项的宽度
[segmentedControl setContentOffset:CGSizeMake( 10.0, 10.0) forSegmentAtIndex: 1]; // 设置选项中图片等的左上角的位置
// 获取指定索引选项的图片imageForSegmentAtIndex:
UIImageView *imageForSegmentAtIndex = [[UIImageView alloc]initWithImage:[segmentedControl imageForSegmentAtIndex: 1]];
imageForSegmentAtIndex.frame = CGRectMake( 60.0, 100.0, 30.0, 30.0);
// 获取指定索引选项的标题titleForSegmentAtIndex
UILabel *titleForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake( 100.0, 100.0, 30.0, 30.0)];
titleForSegmentAtIndex.text = [segmentedControl titleForSegmentAtIndex: 0];
// 获取总选项数segmentedControl.numberOfSegments
UILabel *numberOfSegments = [[UILabel alloc]initWithFrame:CGRectMake( 140.0, 100.0, 30.0, 30.0)];
numberOfSegments.text = [NSString stringWithFormat: @" %d ",segmentedControl.numberOfSegments];
// 获取指定索引选项的宽度widthForSegmentAtIndex:
UILabel *widthForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake( 180.0, 100.0, 70.0, 30.0)];
widthForSegmentAtIndex.text = [NSString stringWithFormat: @" %f ",[segmentedControl widthForSegmentAtIndex: 2]];
segmentedControl.selectedSegmentIndex = 2; // 设置默认选择项索引
segmentedControl.tintColor = [UIColor redColor];
segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain; // 设置样式
segmentedControl.momentary = YES; // 设置在点击后是否恢复原样
[segmentedControl setEnabled:NO forSegmentAtIndex: 4]; // 设置指定索引选项不可选
BOOL enableFlag = [segmentedControl isEnabledForSegmentAtIndex: 4]; // 判断指定索引选项是否可选
NSLog( @" %d ",enableFlag);
[self.view addSubview:widthForSegmentAtIndex];
[self.view addSubview:numberOfSegments];
[self.view addSubview:titleForSegmentAtIndex];
[self.view addSubview:imageForSegmentAtIndex];
[self.view addSubview:segmentedControl];
[widthForSegmentAtIndex release];
[numberOfSegments release];
[titleForSegmentAtIndex release];
[segmentedTemp release];
[imageForSegmentAtIndex release];
// 移除所有选项
// [segmentedControl removeAllSegments];
[super viewDidLoad];
}
/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/
- ( void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- ( void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- ( void)dealloc {
[segmentedControl release];
[super dealloc];
}
@end