zoukankan      html  css  js  c++  java
  • UISlider

    1、UISlider 的创建

    // 高度不起作用,但不能为 0 ,为 0 时滑块无法滑动
    UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(20, 200, 300, 20)];
    
    // 将 slider 添加到 view
    [self.view addSubview:slider];
    

    2、UISlider 的设置

    // 设置最小和最大值
    slider.minimumValue = 0;
    slider.maximumValue = 100;
    
    // 设置当前值
    slider.value = 50;
    [slider setValue:50 animated:YES];
    
    // 获取当前值
    float value = slider.value;
    
    // 设置滑块的颜色
    /* 默认为白色 */
    slider.thumbTintColor = [UIColor orangeColor];
    
    // 设置滑过的进度条的颜色
    /* 默认为蓝色 */
    slider.tintColor = [UIColor redColor];
    
    // 设置滑过的和未划过的进度条的颜色
    /*
    minimumTrackTintColor:滑过的进度条颜色,默认为蓝色
    maximumTrackTintColor:未划过的进度条颜色,默认为灰色
    */
    slider.minimumTrackTintColor = [UIColor greenColor];
    slider.maximumTrackTintColor = [UIColor redColor];
    
    // 设置滑块的图片
    [slider setThumbImage:[UIImage imageNamed:@"hehe"] forState:UIControlStateNormal];
    [slider setThumbImage:[UIImage imageNamed:@"hihi"] forState:UIControlStateHighlighted];
    
    // 设置滑过的和未划过的进度条的图片
    [slider setMinimumTrackImage:[UIImage imageNamed:@"pic1"] forState:UIControlStateNormal];
    [slider setMaximumTrackImage:[UIImage imageNamed:@"pic2"] forState:UIControlStateNormal];
    
    // 设置左右两端的图片
    slider.minimumValueImage = [UIImage imageNamed:@"volum-"];
    slider.maximumValueImage = [UIImage imageNamed:@"volum+"];
    
    // 设置为纵向
    // 顺时针旋转 90 度,90/180 * M_PI,1 度 = PI/180 弧度
    slider.transform = CGAffineTransformMakeRotation(0.5 * M_PI);
    
    // 逆时针旋转 90 度,270/180 * M_PI,1 度 = PI/180 弧度
    slider.transform = CGAffineTransformMakeRotation(1.5 * M_PI);
    
    // 获取当前值
    UIImage *thumbImage = slider.currentThumbImage;                  // 获取当前滑块的图片值
    UIImage *minimumTrackImage = slider.currentMinimumTrackImage;    // 获取当前滑过的进度条的图片值
    UIImage *maximumTrackImage = slider.currentMaximumTrackImage;    // 获取当前未滑过的进度条的图片值
    
    // 添加点击触发事件
    /* UISlider 继承于 UIControl,可以对 UISlider 添加触发事件
    	UISlider作为进度条一直为我们所使用,如果想获取变化的值,通过UIControlEventValueChanged即可获取,但是如果想获取滑动开始和结束的事件需要另外两个事件: */
    [slider addTarget:self action:@selector(sliderProgressChange:) forControlEvents:UIControlEventValueChanged]; 
    [slider addTarget:self action:@selector(sliderTouchDown:) forControlEvents:UIControlEventTouchDown]; 
    [slider addTarget:self action:@selector(sliderTouchUpInSide:) forControlEvents:UIControlEventTouchUpInside];
    

    3、UISlider 透明化处理

    • 经过处理后的 UISlider 就只能看到中间的 ThumbImage 了,而 ThumbImage 左右的颜色都变成透明的。之后可以再设置上颜色等。
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(1, 1), NO, 0.0f);
    UIImage *transparentImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    [slider setMinimumTrackImage:transparentImage forState:UIControlStateNormal];
    [slider setMaximumTrackImage:transparentImage forState:UIControlStateNormal];
    
  • 相关阅读:
    Django的sitemap
    meibu ddns update command
    nginx笔记
    docker里运行cron的要点笔记
    win2008r2 32位odbc安装笔记
    【转载】利用tasker推送手机短信到企业微信(App或者微信公众号)
    关闭树莓派的优化笔记
    自已编译openweb docker image笔记
    【笔记】元学习专题视频(台大·李宏毅)学习记录
    【教程】基于Ubuntu系统的PyTorch虚拟环境配置
  • 原文地址:https://www.cnblogs.com/CH520/p/9413481.html
Copyright © 2011-2022 走看看