ios UISegmentedControl 用法 【轉】


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



 

  1. *********************************************/  
  2. // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.  
  3. - (void)viewDidLoad {  
  4.     NSArray *segmentedArray = [[NSArray alloc]initWithObjects:@"1",@"2",@"3",@"4",nil];  
  5.     //初始化UISegmentedControl  
  6.     UISegmentedControl *segmentedTemp = [[UISegmentedControl alloc]initWithItems:segmentedArray];  
  7.     segmentedControl = segmentedTemp;  
  8.     segmentedControl.frame = CGRectMake(60.0, 10.0, 200.0, 50.0);  
  9.       
  10.     [segmentedControl setTitle:@"two" forSegmentAtIndex:1];//設置指定索引的題目  
  11.     [segmentedControl setImage:[UIImage imageNamed:@"lan.png"] forSegmentAtIndex:3];//設置指定索引的圖片  
  12.     [segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"mei.png"] atIndex:2 animated:NO];//在指定索引插入一個選項並設置圖片  
  13.     [segmentedControl insertSegmentWithTitle:@"insert" atIndex:3 animated:NO];//在指定索引插入一個選項並設置題目  
  14.     [segmentedControl removeSegmentAtIndex:0 animated:NO];//移除指定索引的選項  
  15.     [segmentedControl setWidth:70.0 forSegmentAtIndex:2];//設置指定索引選項的寬度  
  16.     [segmentedControl setContentOffset:CGSizeMake(10.0,10.0) forSegmentAtIndex:1];//設置選項中圖片等的左上角的位置  
  17.       
  18.     //獲取指定索引選項的圖片imageForSegmentAtIndex:  
  19.     UIImageView *imageForSegmentAtIndex = [[UIImageView alloc]initWithImage:[segmentedControl imageForSegmentAtIndex:1]];  
  20.     imageForSegmentAtIndex.frame = CGRectMake(60.0, 100.0, 30.0, 30.0);  
  21.       
  22.     //獲取指定索引選項的標題titleForSegmentAtIndex  
  23.     UILabel *titleForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(100.0, 100.0, 30.0, 30.0)];  
  24.     titleForSegmentAtIndex.text = [segmentedControl titleForSegmentAtIndex:0];  
  25.       
  26.     //獲取總選項數segmentedControl.numberOfSegments  
  27.     UILabel *numberOfSegments = [[UILabel alloc]initWithFrame:CGRectMake(140.0, 100.0, 30.0, 30.0)];  
  28.     numberOfSegments.text = [NSString stringWithFormat:@"%d",segmentedControl.numberOfSegments];  
  29.       
  30.     //獲取指定索引選項的寬度widthForSegmentAtIndex:  
  31.     UILabel *widthForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(180.0, 100.0, 70.0, 30.0)];  
  32.     widthForSegmentAtIndex.text = [NSString stringWithFormat:@"%f",[segmentedControl widthForSegmentAtIndex:2]];  
  33.       
  34.     segmentedControl.selectedSegmentIndex = 2;//設置默認選擇項索引  
  35.     segmentedControl.tintColor = [UIColor redColor];  
  36.     segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;//設置樣式  
  37.     segmentedControl.momentary = YES;//設置在點擊后是否恢復原樣  
  38.       
  39.     [segmentedControl setEnabled:NO forSegmentAtIndex:4];//設置指定索引選項不可選  
  40.     BOOL enableFlag = [segmentedControl isEnabledForSegmentAtIndex:4];//判斷指定索引選項是否可選  
  41.     NSLog(@"%d",enableFlag);  
  42.       
  43.     [self.view addSubview:widthForSegmentAtIndex];  
  44.     [self.view addSubview:numberOfSegments];  
  45.     [self.view addSubview:titleForSegmentAtIndex];  
  46.     [self.view addSubview:imageForSegmentAtIndex];  
  47.     [self.view addSubview:segmentedControl];  
  48.       
  49.     [widthForSegmentAtIndex release];  
  50.     [numberOfSegments release];  
  51.     [titleForSegmentAtIndex release];  
  52.     [segmentedTemp release];  
  53.     [imageForSegmentAtIndex release];  
  54.       
  55.     //移除所有選項  
  56.     //[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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM