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

在UITableView顶部制作简单的UISegmentControl实例方法

2013-06-29 07:21 344 查看




如上图: 分两步:

一、创建320长度背景,高不超过40最好

//segment背景图
UIImageView *segBgImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"segmented_bg.png"]];
[segBgImg setUserInteractionEnabled:YES];
[segBgImg setFrame:CGRectMake(0, 44, 320, 38)];

//segment实例对象及初始化
UISegmentedControl *segment = [[UISegmentedControl alloc] initWithItems:nil];
segment.selectedSegmentIndex = 0;
[segment insertSegmentWithImage:[UIImage imageNamed:@"segmented_price_all_selected.png"] atIndex:0 animated:NO];
[segment insertSegmentWithImage:[UIImage imageNamed:@"segmented_price_free.png"] atIndex:1 animated:NO];
segment.frame = CGRectMake(10, 5, 184, 28);

[segment setMomentary:YES];
[segment addTarget:self action:@selector(segmentClick:) forControlEvents:UIControlEventValueChanged];
[segBgImg addSubview:segment];
[segment release];

[self.view addSubview:segBgImg];
[segBgImg release];


二、segmentClick相应事件中选中当前焦点 

//选择时触发
- (void)segmentClick:(UISegmentedControl *)segment
{
NSInteger index = segment.selectedSegmentIndex;
switch (index) {
case 0: //全部
[segment setImage:[UIImage imageNamed:@"segmented_price_all_selected.png"] forSegmentAtIndex:0];
[segment setImage:[UIImage imageNamed:@"segmented_price_free.png"] forSegmentAtIndex:1];
break;
case 1: //免费
[segment setImage:[UIImage imageNamed:@"segmented_price_all.png"] forSegmentAtIndex:0];
[segment setImage:[UIImage imageNamed:@"segmented_price_free_selected.png"] forSegmentAtIndex:1];
break;
}
}


注: 多个segment切换时用for循环处理一下即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: