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

在UITableView顶部制作简单的UISegmentControl实例方法_第1张图片

在UITableView顶部制作简单的UISegmentControl实例方法_第2张图片

如上图: 分两步:

一、创建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循环处理一下即可



你可能感兴趣的:(在UITableView顶部制作简单的UISegmentControl实例方法)