UISegmentedControl的詳細使用

UISegmentedControl的詳細使用

當用戶輸入不單單是布爾值時,可以使用分段控件(UISegmentedControl)。分段控件提供一欄按鈕(有時稱爲按鈕欄),但只能激活其中一個按鈕。分段控件會致使用戶在屏幕上看到的內容發生變化。它們經常使用於在不一樣類別的信息之間選擇,或在不一樣的應用屏幕之間切換。下面介紹基本屬性和基本方法的使用。 html

NSArray *segmentedArray = [[NSArrayalloc]initWithObjects:@"1",@"2",@"3",@"4",nil];   spa

    //初始化UISegmentedControl   orm

    UISegmentedControl *segmentedControl = [[UISegmentedControlalloc]initWithItems:segmentedArray];   htm

    segmentedControl.frame = CGRectMake(20.0, 20.0250.050.0);   blog

    segmentedControl.selectedSegmentIndex = 2;//設置默認選擇項索引   索引

    segmentedControl.tintColor = [UIColor redColor];   圖片

  //有基本四種樣式 ip

    segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;//設置樣式 開發

 

    //segmentedControl.segmentedControlStyle = UISegmentedControlStyleBordered;//設置樣式 rem

   //segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;//設置樣式

  //segmentedControl.segmentedControlStyle = UISegmentedControlStyleBezeled;//設置樣式

 

    //  segmentedControl.momentary = YES;//設置在點擊後是否恢復原樣     

    [segmentedControl setTitle:@"two" forSegmentAtIndex:1];//設置指定索引的題目  

    [segmentedControl setImage:[UIImage imageNamed:@"btn_jyy.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:4];//設置選項中圖片等的左上角的位置  

    

    //獲取指定索引選項的圖片imageForSegmentAtIndex:  

    UIImageView *imageForSegmentAtIndex = [[UIImageViewalloc]initWithImage:[segmentedControl imageForSegmentAtIndex:1]];  

    imageForSegmentAtIndex.frame = CGRectMake(60.0120.030.030.0);  ;

    

    //獲取指定索引選項的標題titleForSegmentAtIndex  

    UILabel *titleForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(100.0160.030.030.0)];  

    titleForSegmentAtIndex.text = [segmentedControl titleForSegmentAtIndex:0];  

    

    //獲取總選項數segmentedControl.numberOfSegments  

    UILabel *numberOfSegments = [[UILabel alloc]initWithFrame:CGRectMake(140.0170.030.030.0)];  

    numberOfSegments.text = [NSString stringWithFormat:@"%d",segmentedControl.numberOfSegments]; 

 

    //獲取指定索引選項的寬度widthForSegmentAtIndex  

    UILabel *widthForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(180.0210.070.030.0)];  

    widthForSegmentAtIndex.text = [NSString stringWithFormat:@"%f",[segmentedControl widthForSegmentAtIndex:2]];  

     

   // [segmentedControl setEnabled:NO forSegmentAtIndex:4];//設置指定索引選項不可選  

   // BOOL enableFlag = [segmentedControl isEnabledForSegmentAtIndex:4];//判斷指定索引選項是否可選  

      [mySegmentedControladdTarget:selfaction:@selector(segmentAction:)forControlEvents:UIControlEventValueChanged];  //添加委託方法

//具體委託方法實例   

-(void)segmentAction:(UISegmentedControl *)Seg{

    NSInteger Index = Seg.selectedSegmentIndex;

    NSLog(@"Index %i", Index);

    switch (Index) {

        case 0:

            [self selectmyView1];

            break;

        case 1:

            [self selectmyView2];

            break;

        case 2:

            [self selectmyView3];

            break;

        case 3:

            [self selectmyView4];

            break;

        case 4:

            [self selectmyView5];

            break;

        case 5:

            [self selectmyView6];

            break;    

        default:

            break;

    }

}

 

基本屬性、方法如上,你們在實際開發中可根據實際需求選取適當屬性和方法。

 

使用技巧:

在導航欄中添加UISegmentedControl ,實現的效果:

實現的代碼:

//自定義UISegmentedcontrol

UISegmentedControl *segmentedControl=[[UISegmentedControl alloc] initWithFrame:CGRectMake(80.0f, 8.0f, 200.0f, 30.0f) ]; 
    [segmentedControl insertSegmentWithTitle:@"Food to eat" atIndex:0 animated:YES]; 
    [segmentedControl insertSegmentWithTitle:@"Food to avoid" atIndex:1 animated:YES]; 
    segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
    segmentedControl.momentary = YES; 
    segmentedControl.multipleTouchEnabled=NO; 
    [segmentedControl addTarget:self action:@selector(Selectbutton:) forControlEvents:UIControlEventValueChanged]; 
    UIBarButtonItem *segButton = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];  //自定義UIBarButtonItem,封裝定義好的UIsegmented。
    [segmentedControl release]; 
    self.navigationItem.rightBarButtonItem = segButton;  //添加到導航欄中
    [segButton release];

轉自:http://www.cnblogs.com/top5/archive/2012/05/17/2506618.html

相關文章
相關標籤/搜索