如上图: 分两步:
一、创建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循环处理一下即可