UISegmentedControl详解
来源:互联网 发布:帝国cms首页模板修改 编辑:程序博客网 时间:2024/06/05 18:31
#import "SegmentedControlTestViewController.h"
@implementation SegmentedControlTestViewController
@synthesize segmentedControl;
/****************************************
Tasks
Initializing a Segmented Control
– initWithItems:
Managing Segment Content
– setImage:forSegmentAtIndex:
– imageForSegmentAtIndex:
– setTitle:forSegmentAtIndex:
– titleForSegmentAtIndex:
Managing Segments
– insertSegmentWithImage:atIndex:animated:
– insertSegmentWithTitle:atIndex:animated:
numberOfSegments property
– removeAllSegments
– removeSegmentAtIndex:animated:
selectedSegmentIndex property
Managing Segment Behavior and Appearance
momentary property
segmentedControlStyle property
tintColor property
– setEnabled:forSegmentAtIndex:
– isEnabledForSegmentAtIndex:
– setContentOffset:forSegmentAtIndex:
– contentOffsetForSegmentAtIndex:
– setWidth:forSegmentAtIndex:
– widthForSegmentAtIndex:
*********************************************/
// 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];
[super viewDidLoad];
}
/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[segmentedControl release];
[super dealloc];
}
@end
UISegmentedControl分段按钮的使用
2011-08-02 18:01:27| 分类: IOS|字号 订阅
[代码]c#/cpp/oc代码:
1
NSArray *segmentedArray = [[NSArrayalloc]initWithObjects:
@"1"
,
@"2"
,
@"3"
,
@"4"
,nil];
2
//初始化UISegmentedControl
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];
7
//有基本四种样式
8
segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;
//设置样式
[代码]c#/cpp/oc代码:
1
//segmentedControl.segmentedControlStyle = UISegmentedControlStyleBordered;//设置样式
[代码]c#/cpp/oc代码:
1
//segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;//设置样式
[代码]c#/cpp/oc代码:
1
//segmentedControl.segmentedControlStyle = UISegmentedControlStyleBezeled;//设置样式
[代码]c#/cpp/oc代码:
1
// segmentedControl.momentary = YES;//设置在点击后是否恢复原样
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代码:
01
// [segmentedControl setWidth:70.0 forSegmentAtIndex:2];//设置指定索引选项的宽度
02
// [segmentedControl setContentOffset:CGSizeMake(10.0,10.0) forSegmentAtIndex:4];//设置选项中图片等的左上角的位置
03
04
//获取指定索引选项的图片imageForSegmentAtIndex:
05
UIImageView *imageForSegmentAtIndex = [[UIImageViewalloc]initWithImage:[segmentedControl imageForSegmentAtIndex:1]];
06
imageForSegmentAtIndex.frame = CGRectMake(60.0, 120.0, 30.0, 30.0); ;
07
08
//获取指定索引选项的标题titleForSegmentAtIndex
09
UILabel *titleForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(100.0, 160.0, 30.0, 30.0)];
10
titleForSegmentAtIndex.text = [segmentedControl titleForSegmentAtIndex:0];
11
12
//获取总选项数segmentedControl.numberOfSegments
13
UILabel *numberOfSegments = [[UILabel alloc]initWithFrame:CGRectMake(140.0, 170.0, 30.0, 30.0)];
14
numberOfSegments.text = [NSString stringWithFormat:
@"%d"
,segmentedControl.numberOfSegments];
15
16
//获取指定索引选项的宽度widthForSegmentAtIndex:
17
UILabel *widthForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(180.0, 210.0, 70.0, 30.0)];
18
widthForSegmentAtIndex.text = [NSString stringWithFormat:
@"%f"
,[segmentedControl widthForSegmentAtIndex:2]];
19
20
// [segmentedControl setEnabled:NO forSegmentAtIndex:4];//设置指定索引选项不可选
21
// BOOL enableFlag = [segmentedControl isEnabledForSegmentAtIndex:4];//判断指定索引选项是否可选
22
[mySegmentedControladdTarget:selfaction:@selector(segmentAction:)forControlEvents:UIControlEventValueChanged];
//添加委托方法
23
//具体委托方法实例
24
-(
void
)segmentAction:(UISegmentedControl *)Seg{
25
NSInteger Index = Seg.selectedSegmentIndex;
26
NSLog(
@"Index %i"
, Index);
27
switch
(Index) {
28
case
0:
29
[self selectmyView1];
30
break
;
31
case
1:
32
[self selectmyView2];
33
break
;
34
case
2:
35
[self selectmyView3];
36
break
;
37
case
3:
38
[self selectmyView4];
39
break
;
40
case
4:
41
[self selectmyView5];
42
break
;
43
case
5:
44
[self selectmyView6];
45
break
;
46
default
:
47
break
;
48
}
49
}
基本属性、方法如上,大家在实际开发中可根据实际需求选取适当属性和方法。
使用技巧:
在导航栏中添加UISegmentedControl ,实现的效果:
实现的代码:
[代码]c#/cpp/oc代码:
01
//自定义UISegmentedcontrol
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];
//自定义UIBarButtonItem,封装定义好的UIsegmented。
10
[segmentedControl release];
11
self.navigationItem.rightBarButtonItem = segButton;
//添加到导航栏中
12
[segButton release];
- UISegmentedControl详解
- UISegmentedControl详解
- UISegmentedControl 详解
- UISegmentedControl详解
- UISegmentedControl详解
- UISegmentedControl详解
- UISegmentedControl用法详解
- UISegmentedControl 使用详解
- iOS UISegmentedControl控件详解
- ios学习--UISegmentedControl详解
- iOS UISegmentedControl控件详解
- UISegmentedControl用法详解
- UISegmentedControl分段控件使用详解
- iOS 之 UISegmentedControl 使用详解
- UISegmentedControl
- UISegmentedControl
- UISegmentedControl
- UISegmentedControl
- 关于SLL与DLL
- 在SecureCRT屏幕上获取数据并存至文件中
- XMPP/Smack/Openfire javax.net.ssl.SSLException: Received fatal alert: internal_error
- ubuntu环境下安装字体
- 被点击访问过的超链接样式不在具有hover和active了
- UISegmentedControl详解
- vc2005调试
- Linux 文件共享 NFS
- 【工具教程】NotePad++教程
- 【web前端】小tip: 外链地址网站标志图标API应用
- 高次幂取模
- Ubuntu 10.10下安装ncurses-devel
- 在IE6,IE7 中DIV容器固定高度的使用技巧
- js打开窗体