當用戶輸入不單單是布爾值時,可以使用分段控件(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.0, 250.0, 50.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.0, 120.0, 30.0, 30.0); ;
//獲取指定索引選項的標題titleForSegmentAtIndex
UILabel *titleForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(100.0, 160.0, 30.0, 30.0)];
titleForSegmentAtIndex.text = [segmentedControl titleForSegmentAtIndex:0];
//獲取總選項數segmentedControl.numberOfSegments
UILabel *numberOfSegments = [[UILabel alloc]initWithFrame:CGRectMake(140.0, 170.0, 30.0, 30.0)];
numberOfSegments.text = [NSString stringWithFormat:@"%d",segmentedControl.numberOfSegments];
//獲取指定索引選項的寬度widthForSegmentAtIndex:
UILabel *widthForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(180.0, 210.0, 70.0, 30.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