您的位置:首页 > 产品设计 > UI/UE

iphone开发之UISegmentedControl 学习随笔

2012-04-20 09:06 281 查看
原文地址:iphone开发之UISegmentedControl 学习随笔作者:若水一叶
//代码创建UISegmentedControl及基本设置

//自己代码中常用的

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc]initWithFrame:CGRectMake(120, 4, 150,40)];

[segmentedControl insertSegmentWithTitle:@"first" atIndex:0animated:YES];

[segmentedControl insertSegmentWithTitle:@"second" atIndex:1animated:YES];

segmentedControl.segmentedControlStyle =UISegmentedControlStyleBordered;//设置样式

[segmentedControl setSelectedSegmentIndex:0];//首先显示index=0的内容

segmentedControl.momentary =YES; //设置在点击后是否恢复原样

segmentedControl.multipleTouchEnabled=NO; //可触摸

[segmentedControl addTarget:self action:@selector(Selectbutton:)forControlEvents:UIControlEventValueChanged];

UIBarButtonItem *segButton = [[UIBarButtonItem alloc]initWithCustomView:segmentedControl];

[segmentedControl release];

//将UISegmentedControl添加到UINavigationController上

self.navigationItem.rightBarButtonItem = segButton;

//其他代码,别人的

// 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];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: