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:[UIImageimageNamed:@"lan.png"]forSegmentAtIndex:3];//設置指定索引的圖片
[segmentedControlinsertSegmentWithImage:[UIImageimageNamed:@"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];//設置選項中圖片等的左上角的位置
//獲取指定索引選項的圖片imageForSegmentAtIndex:
UIImageView *imageForSegmentAtIndex = [[UIImageViewalloc]initWithImage:[segmentedControlimageForSegmentAtIndex:1]];
imageForSegmentAtIndex.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:imageForSegmentAtIndex];
[self.viewaddSubview:segmentedControl];
[widthForSegmentAtIndexrelease];
[numberOfSegmentsrelease];
[titleForSegmentAtIndexrelease];
[segmentedTemp release];
[imageForSegmentAtIndexrelease];
第二種
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 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];
嗯是這樣的 我之前也是做的分段控件 其實是有效果的 但是點擊很不明顯,后來是用了4張圖片,2張是作為高亮圖片。
UIImage *segment_hightImage2 = [UIImage imageNamed:NAME_SEGMENTINDEXSECOND_HIGHLIGHTIMAGE];
[m_catalogControl setImage:segment_hightImage2 forSegmentAtIndex:1];
UIImage *segment_image4 = [UIImage imageNamed:NAME_SEGMENTINDEXFIRST_IMAGE];//此處設置了分段控件選中第二個item的高亮圖片
[m_catalogControl setImage:segment_image4 forSegmentAtIndex:0];
注意交錯就可以了 點擊2位置的時候把其他的再設置為默認圖片,被點的設置為高亮圖片
原文:http://blog.csdn.net/ch_soft/article/details/6757171
