NSSegmentAndSlider

来源:互联网 发布:java异常处理关键字 编辑:程序博客网 时间:2024/06/17 06:17

#import "RootViewController.h"

@interface RootViewController ()

@end

@implementation RootViewController

- (void)loadView
{
    [super loadView];
    self.rootView = [[RootView alloc] initWithFrame:[UIScreen mainScreen].bounds];
    self.view = self.rootView;
}



- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    
    //给segment添加点击事件(触发事件    UIcontrolEvent     valueChange)
    [self.rootView.segment addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
    
    //给slider添加触发事件 (触发事件也是Valuechanged)
    [self.rootView.slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
    
}




#pragma mark - slider 触发事件
- (void)sliderAction:(UISlider *)sender
{
    /*
    //获取到黑色view 的方法   viewWithTag:
    UIView *blackview =[self.rootView viewWithTag:1111];
    
    //根据slider滑块的位置改变透明度 sender.value 可以拿到值
    blackview.alpha = 1 - sender.value;
    NSLog(@"value = %.2f" , sender.value);
    */
    
    //1.先找到图片  
    UIImageView *imageView =(UIImageView *)[self.rootView viewWithTag:2222];
    
    //2.让图片播放速度和滑块的value产生关系
    imageView.animationDuration = 1 - sender.value;
    
    //3只要图片的播放速度改变了,必须让imageView重新开始播放
    [imageView startAnimating];
    
    
}

int a = 0;

#pragma mark - segment 点击事件
- (void)segmentAction:(UISegmentedControl *) sender
{
    NSLog(@"*****");
    //根据下标ValueChange打印不同的话
    
    switch (sender.selectedSegmentIndex ) {
        case 0:
        {
            NSLog(@"我是全部");
            //7给segment设置Title
            if (a % 2  == 0 ) {
                [self.rootView.segment setTitle:@"刘敦辉" forSegmentAtIndex:0];
            }
            if (a % 2 == 1) {
                [self.rootView.segment setTitle:@"全部" forSegmentAtIndex:0];
            }
            a++;
        }
            break;
            case 1:
        {
            NSLog(@"我是分类");
            
            //8 给segment添加一个分段
            [sender insertSegmentWithTitle:@"泰迪" atIndex:0 animated:YES];
            
            
        }
            break;
            //保证删除操作在添加操作以后
            case 3:
        {
            NSLog(@"我是进行中");
            //移除某一个分段  (segment 移除操作 必须保证, 移除之后的分段 > 或者 == 初始化时候给的分段的个数)
            [sender removeSegmentAtIndex:0 animated:YES];
        }
            break;
            
        default:
            break;
    }
    
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)dealloc
{
    [_rootView release];
    [super dealloc];
}

@end

//********************************************************************************************************//

#import "RootView.h"


@implementation RootView

-(instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self addSubviews];
    }
    return self;
}

- (void)addSubviews
{
    
    self.backgroundColor = [UIColor whiteColor];
    
    //创建segment
    NSArray *arr = @[@"全部" , @"分类" , @"进行中"];
    self.segment = [[UISegmentedControl alloc] initWithItems:arr];
    
    
    //设置segment的属性
    //1.设置frame
    self.segment.frame = CGRectMake(20, 50, 200, 30);
    
    //2设置默认属性 //默认为没有
    self.segment.selectedSegmentIndex = 0;
    
    //设置每一分段的宽度    注意总共的宽度
    [self.segment setWidth:100 forSegmentAtIndex:1];
    
    //摸一个分段选中后是否让他出入选中状态  默认为no
    self.segment.momentary = YES;
    
    //改变segment的渲染颜色
    self.segment.tintColor = [UIColor orangeColor];
    
    //给segment添加点击事件

    
    
    //添加到rootView上
    [self addSubview:self.segment];
    [self.segment release];

    
    //黑色的布景
    UIView *blackview = [[UIView alloc] initWithFrame:self.frame];
    blackview.tag = 1111;
    blackview.backgroundColor = [UIColor blackColor] ;
    
    [self addSubview:blackview];
    [blackview release];
    //alpha为透明度  一旦一个view的透明度变为0 代表整个view就相当于消失了一样
//    blackview.alpha = 0.1;
    
    
    
    //添加uiSlider 滑块
    self.slider = [[UISlider alloc] initWithFrame:CGRectMake(20, 300, 300, 20)];
    
    //给slider设置属性
    //1 设置已经画过的区域的颜色
    self.slider.minimumTrackTintColor = [UIColor redColor];
    
    //2 未划过的区域改变颜色
    self.slider.maximumTrackTintColor = [UIColor yellowColor];
    
    //3设置滑块的值的范围
    self.slider.minimumValue = 0.0;
    self.slider.maximumValue = 1.0;
    
    // (默认为  yes) 控制该控件是否连续触发滑动事件
    //self.slider.continuous = NO;
    
    
   //给滑块设置图片 png格式可以不用写
    [self.slider setThumbImage:[UIImage imageNamed:@"~21`3]MC2DGHFY9{%S@O[9K.png"] forState:NO];
    
    
    //添加属性
    [self addSubview:self.slider];
    [self.slider release];
    
    /*
    //给rootView添加图片
    //如果imageView没有设置frame大小 默认是imageView 里边的imaged的size的大小
    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"395636.jpg"]];
    //设置imageView的frame
    imageView.frame = CGRectMake(100, 200, 100, 100);
    
    //imageView.frame = [UIScreen mainScreen].bounds;
    [self addSubview:imageView];
    [imageView release];
    */
    
    NSMutableArray *arr1 = [NSMutableArray array];
    for (int i = 1; i < 8; i++) {
        UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"huoju_%d.tiff" , i]];
        [arr1 addObject:image];
    }
    
    UIImageView *imageview = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    //把放进数组的图片给imageView
    imageview.animationImages = arr1;
    
    //设置一下播放的参数问题
    imageview.animationDuration = 1;
    
    //设置一下播放的参数问题
    imageview.animationRepeatCount = 0;
    
    imageview.tag = 2222;
    
    //播放开始
    [imageview startAnimating];
    
    [self addSubview:imageview];
    
    
    
    
}

- (void)dealloc
{
    [_segment release];
    [_slider release];
    [super dealloc];
}

0 0
原创粉丝点击