NSArray * arr=[NSArrayarrayWithObjects:@"11",@"22",@"33",nil];
UISegmentedControl * seg=[[UISegmentedControlalloc]initWithItems:arr];
[self.viewaddSubview:seg];
NSArray *segmentedArray = [[NSArray alloc]initWithObjects:@"1",@"2",@"3",@"4",nil];
//初始化UISegmentedControl
UISegmentedControl *segmentedControl = [[UISegmentedControlalloc]initWithItems:segmentedArray];
segmentedControl = segmentedTemp;
segmentedControl.frame =CGRectMake(60.0,10.0,200.0,50.0);
[segmentedControlsetTitle:@"two"forSegmentAtIndex:1];//设置指定索引的题目
[segmentedControlsetImage:[UIImagep_w_picpathNamed:@"lan.png"]forSegmentAtIndex:3];//设置指定索引的图片
[segmentedControlinsertSegmentWithImage:[UIImagep_w_picpathNamed:@"mei.png"]atIndex:2animated:NO];//在指定索引插入一个选项并设置图片
[segmentedControlinsertSegmentWithTitle:@"insert"atIndex:3animated:NO];//在指定索引插入一个选项并设置题目
[segmentedControlremoveSegmentAtIndex:0animated:NO];//移除指定索引的选项
[segmentedControlsetWidth:70.0forSegmentAtIndex:2];//设置指定索引选项的宽度
[segmentedControlsetContentOffset:CGSizeMake(10.0,10.0)forSegmentAtIndex:1];//设置选项中图片等的左上角的位置
//获取指定索引选项的图片p_w_picpathForSegmentAtIndex:
UIImageView *p_w_picpathForSegmentAtIndex = [[UIImageViewalloc]initWithImage:[segmentedControlp_w_picpathForSegmentAtIndex:1]];
p_w_picpathForSegmentAtIndex.frame =CGRectMake(60.0,100.0,30.0,30.0);
//获取指定索引选项的标题titleForSegmentAtIndex
UILabel *titleForSegmentAtIndex = [[UILabelalloc]initWithFrame:CGRectMake(100.0,100.0,30.0,30.0)];
titleForSegmentAtIndex.text = [segmentedControltitleForSegmentAtIndex:0];
//获取总选项数segmentedControl.numberOfSegments
UILabel *numberOfSegments = [[UILabel alloc]initWithFrame:CGRectMake(140.0,100.0,30.0,30.0)];
numberOfSegments.text = [NSStringstringWithFormat:@"%d",segmentedControl.numberOfSegments];
//获取指定索引选项的宽度widthForSegmentAtIndex:
UILabel *widthForSegmentAtIndex = [[UILabelalloc]initWithFrame:CGRectMake(180.0,100.0,70.0,30.0)];
widthForSegmentAtIndex.text = [NSStringstringWithFormat:@"%f",[segmentedControlwidthForSegmentAtIndex:2]];
segmentedControl.selectedSegmentIndex =2;//设置默认选择项索引
segmentedControl.tintColor = [UIColorredColor];
segmentedControl.segmentedControlStyle =UISegmentedControlStylePlain;//设置样式
segmentedControl.momentary =YES;//设置在点击后是否恢复原样
[segmentedControlsetEnabled:NOforSegmentAtIndex:4];//设置指定索引选项不可选
BOOL enableFlag = [segmentedControl isEnabledForSegmentAtIndex:4];//判断指定索引选项是否可选
NSLog(@"%d",enableFlag);
[self.viewaddSubview:widthForSegmentAtIndex];
[self.viewaddSubview:numberOfSegments];
[self.viewaddSubview:titleForSegmentAtIndex];
[self.viewaddSubview:p_w_picpathForSegmentAtIndex];
[self.viewaddSubview:segmentedControl];
[widthForSegmentAtIndexrelease];
[numberOfSegmentsrelease];
[titleForSegmentAtIndexrelease];
[segmentedTemp release];
[p_w_picpathForSegmentAtIndexrelease];
第二种
UISegmentedControl
*********************************************/
// 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 p_w_picpathNamed:@"lan.png"] forSegmentAtIndex:3];//设置指定索引的图片
[segmentedControl insertSegmentWithImage:[UIImage p_w_picpathNamed:@"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];//设置选项中图片等的左上角的位置
//获取指定索引选项的图片p_w_picpathForSegmentAtIndex:
UIImageView *p_w_picpathForSegmentAtIndex = [[UIImageView alloc]initWithImage:[segmentedControl p_w_picpathForSegmentAtIndex:1]];
p_w_picpathForSegmentAtIndex.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:p_w_picpathForSegmentAtIndex];
[self.view addSubview:segmentedControl];
[widthForSegmentAtIndex release];
[numberOfSegments release];
[titleForSegmentAtIndex release];
[segmentedTemp release];
[p_w_picpathForSegmentAtIndex release];
//移除所有选项
//[segmentedControl removeAllSegments];
第三种
嗯是这样的 我之前也是做的分段控件 其实是有效果的 但是点击很不明显,后来是用了4张图片,2张是作为高亮图片。
UIImage *segment_hightImage2 = [UIImage p_w_picpathNamed:NAME_SEGMENTINDEXSECOND_HIGHLIGHTIMAGE];
[m_catalogControl setImage:segment_hightImage2 forSegmentAtIndex:1];
UIImage *segment_p_w_picpath4 = [UIImage p_w_picpathNamed:NAME_SEGMENTINDEXFIRST_IMAGE];//此处设置了分段控件选中第二个item的高亮图片
[m_catalogControl setImage:segment_p_w_picpath4 forSegmentAtIndex:0];
注意交错就可以了 点击2位置的时候把其他的再设置为默认图片,被点的设置为高亮图片