UI - UISegmentedControl、UISlider、UIImageView、UISwitch

//    UIControl的子类(8个):
//    UITextField
//    UIPageControl
//    UISlider
//    UIButton
//    UISegmentedControl
//    UISwitch
//    UIDatePicker
//    UIStepper

//    UISegmentedControl 分段控件 一般用来切换视图
    NSArray *arr = @[@"首页", @"分类", @"用户"];
    UISegmentedControl *seg = [[UISegmentedControl alloc]initWithItems:arr];
    seg.frame = CGRectMake(75, 100, 250, 40);
    [self.view addSubview:seg];

    //1.渲染颜色
    [seg setTintColor:[UIColor blueColor]];
    //2.让图片保持原样不被渲染
    UIImage *image = [[UIImage imageNamed:@"2.png"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    [seg insertSegmentWithImage:image atIndex:2 animated:YES];
    [seg addTarget:self action:@selector(segAction:) forControlEvents:UIControlEventValueChanged];//值改变
    //控件上元素以及选中状态的颜色, button也可以用tintColor
    seg.tintColor = [UIColor blackColor];
    [seg setTitle:@"A" forSegmentAtIndex:2];

    //3.默认选中分段(当前选中的seg)
    seg.selectedSegmentIndex = 0;

//    UIImageView 动画
    NSMutableArray *arr = [NSMutableArray arrayWithCapacity:104];
    for (int i = 1; i <= 104; i++) {
        UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"a-%d.tiff",i]];
        [arr addObject:image];
    }
    self.imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 200)];
    [self.view addSubview:self.imageView];

    //1.动画需要的所有图片
    self.imageView.animationImages = arr;
    //2.播放一组图片所需要的是件, 默认一秒30帧
    self.imageView.animationDuration = 30;
    //3.重复次数, 0无限播放
    self.imageView.animationRepeatCount = 0;

    //4.开启动画
    [self.imageView startAnimating];
    //5.结束动画
//    [self.imageView stopAnimating];

//      UISlider 滑块控件
    self.slider = [[UISlider alloc]initWithFrame:CGRectMake(0, 400, self.view.frame.size.width, 40)];
    //滑块的最大、小值
    self.slider.maximumValue = 50;
    self.slider.minimumValue = 0;
    //滑块的初始值
    self.slider.value = 5;

    [self.view addSubview:self.slider];

    //1.滑块划过区域的颜色
    self.slider.minimumTrackTintColor = [UIColor redColor];
    //2.滑块未划过区域的颜色
    self.slider.maximumTrackTintColor = [UIColor grayColor];
    //3.滑块的颜色
    self.slider.thumbTintColor = [UIColor blackColor];

    //设置不同状态下的背景图片
    //    UIImage *image1 = [UIImage imageNamed:@"a-1.tiff"];
    //    UIImage *image2 = [UIImage imageNamed:@"a-2.tiff"];
    //    [slider setMaximumTrackImage:image1 forState:UIControlStateNormal];
    //    [slider setMinimumTrackImage:image2 forState:UIControlStateNormal];
    //    slider.clipsToBounds = YES;

    //给slider设置播放速度
    //1.注意当self.imageView.animationDuration = 0;会回到初始播放速度
    //2.重新设置播放速度, [self.imageView starAnimating] 应该重新开
    [self.slider addTarget:self action:@selector(drag:) forControlEvents:UIControlEventValueChanged];

    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(location:)];
    [self.slider addGestureRecognizer:tap];


//      UISwitch
    UISwitch *switch1 = [[UISwitch alloc]initWithFrame:CGRectMake(180, 300, 40, 40)];
    //大小51 * 31, 初始化中无法更改大小

    //开关的状态 getter方法是isOn
    switch1.on = YES;
    //开关状态的颜色
    switch1.onTintColor = [UIColor blackColor];
    switch1.tintColor = [UIColor grayColor];

    [self.view addSubview:switch1];

    //练习:创建3个UISlider对象, 用这3个UISlider对象控制self.view.backgroundColor的变化. 3个UISlider对象分别控制UIColor的red, green, blue. 滑动任何一个UISlider都会引起背景颜色变化

}

-(void)location:(UITapGestureRecognizer *)tap{
    CGPoint point = [tap locationInView:self.view];
    self.slider.value = point.x / self.view.frame.size.width * self.slider.maximumValue;
    self.imageView.animationDuration = 50.1 - self.slider.value;
    [self.imageView startAnimating];
}

-(void)drag:(UISlider *)slider{
    self.imageView.animationDuration = 50.1 - slider.value;
    [self.imageView startAnimating];
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值