分段控件提供一栏按钮(有时称为按钮栏),但只能激活其中一个按钮。分段控件会导致用户在屏幕上看到的内容发生变化。它们常用于在不同类别的信息之间选择,或在不同的应用屏幕之间切换。下面介绍基本属性和基本方法的使用。
1 | NSArray *segmentedArray = [[NSArrayalloc]initWithObjects: @"1" , @"2" , @"3" , @"4" ,nil]; |
3 | UISegmentedControl *segmentedControl = [[UISegmentedControlalloc]initWithItems:segmentedArray]; |
4 | segmentedControl.frame = CGRectMake(20.0, 20.0, 250.0, 50.0); |
5 | segmentedControl.selectedSegmentIndex = 2; |
6 | segmentedControl.tintColor = [UIColor redColor]; |
8 | segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain; |
[代码]c#/cpp/oc代码:
2 | [segmentedControl setTitle: @"two" forSegmentAtIndex:1]; |
[代码]c#/cpp/oc代码:
1 | [segmentedControl setImage:[UIImage imageNamed: @"btn_jyy.png" ] forSegmentAtIndex:3]; |
[代码]c#/cpp/oc代码:
1 | [segmentedControl insertSegmentWithImage:[UIImage imageNamed: @"mei.png" ] atIndex:2 animated:NO]; |
[代码]c#/cpp/oc代码:
1 | [segmentedControl insertSegmentWithTitle: @"insert" atIndex:3 animated:NO]; |
[代码]c#/cpp/oc代码:
1 | [segmentedControl removeSegmentAtIndex:0 animated:NO]; |
[代码]c#/cpp/oc代码:
05 | UIImageView *imageForSegmentAtIndex = [[UIImageViewalloc]initWithImage:[segmentedControl imageForSegmentAtIndex:1]]; |
06 | imageForSegmentAtIndex.frame = CGRectMake(60.0, 120.0, 30.0, 30.0); ; |
09 | UILabel *titleForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(100.0, 160.0, 30.0, 30.0)]; |
10 | titleForSegmentAtIndex.text = [segmentedControl titleForSegmentAtIndex:0]; |
13 | UILabel *numberOfSegments = [[UILabel alloc]initWithFrame:CGRectMake(140.0, 170.0, 30.0, 30.0)]; |
14 | numberOfSegments.text = [NSString stringWithFormat: @"%d" ,segmentedControl.numberOfSegments]; |
17 | UILabel *widthForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(180.0, 210.0, 70.0, 30.0)]; |
18 | widthForSegmentAtIndex.text = [NSString stringWithFormat: @"%f" ,[segmentedControl widthForSegmentAtIndex:2]]; |
22 | [mySegmentedControladdTarget:selfaction:@selector(segmentAction:)forControlEvents:UIControlEventValueChanged]; |
24 | -( void )segmentAction:(UISegmentedControl *)Seg{ |
25 | NSInteger Index = Seg.selectedSegmentIndex; |
26 | NSLog( @"Index %i" , Index); |
基本属性、方法如上,大家在实际开发中可根据实际需求选取适当属性和方法。
使用技巧:
在导航栏中添加UISegmentedControl ,实现的效果:
实现的代码:
[代码]c#/cpp/oc代码:
02 | UISegmentedControl *segmentedControl=[[UISegmentedControl alloc] initWithFrame:CGRectMake(80.0f, 8.0f, 200.0f, 30.0f) ]; |
03 | [segmentedControl insertSegmentWithTitle: @"Food to eat" atIndex:0 animated:YES]; |
04 | [segmentedControl insertSegmentWithTitle: @"Food to avoid" atIndex:1 animated:YES]; |
05 | segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; |
06 | segmentedControl.momentary = YES; |
07 | segmentedControl.multipleTouchEnabled=NO; |
08 | [segmentedControl addTarget:self action:@selector(Selectbutton:) forControlEvents:UIControlEventValueChanged]; |
09 | UIBarButtonItem *segButton = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl]; |
10 | [segmentedControl release]; |
11 | self.navigationItem.rightBarButtonItem = segButton; |