iOS - UISlider

前言

    NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UISlider : UIControl <NSCoding>
    @available(iOS 2.0, *)                         public class UISlider : UIControl, NSCoding

1、UISlider 的创建

  • Objective-C

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

2、UISlider 的设置

  • Objective-C

        // 设置最小和最大值
        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 添加触发事件
        */
        [slider addTarget:self action:@selector(sliderClick:) forControlEvents:UIControlEventValueChanged];
  • Swift
        // 设置最小和最大值
        slider.minimumValue = 0
        slider.maximumValue = 100
    
        // 设置当前值
        slider.value = 50
        slider.setValue(50, animated: true)
    
        // 获取当前值
        let value:Float = slider.value
    
        // 设置滑块的颜色
        /*
            默认为白色
        */
        slider.thumbTintColor = UIColor.orangeColor()
    
        // 设置滑过的进度条的颜色
        /*
            默认为蓝色
        */
        slider.tintColor = UIColor.redColor()
    
        // 设置滑过的和未划过的进度条的颜色
        /*
            minimumTrackTintColor:滑过的进度条颜色,默认为蓝色
            maximumTrackTintColor:未划过的进度条颜色,默认为灰色
        */
        slider.minimumTrackTintColor = UIColor.greenColor()
        slider.maximumTrackTintColor = UIColor.redColor()
    
        // 设置滑块的背景图片
    
            // 按钮未点击时的图片
            slider.setThumbImage(UIImage(named: "hehe"), forState: UIControlState.Normal)
    
            // 按钮点击时的图片
            slider.setThumbImage(UIImage(named: "hihi"), forState: UIControlState.Highlighted)
    
        // 设置滑过的和未划过的进度条的图片
        slider.setMinimumTrackImage(UIImage(named: "pic1"), forState: UIControlState.Normal)
        slider.setMaximumTrackImage(UIImage(named: "pic2"), forState: UIControlState.Normal)
    
        // 设置左右两边的图片
        slider.minimumValueImage = UIImage(named: "volum-")
        slider.maximumValueImage = UIImage(named: "volum+")
    
        // 设置为纵向
    
            // 顺时针旋转 90 度,90/180 * M_PI,1 度 = PI/180 弧度
            slider.transform = CGAffineTransformMakeRotation(0.5 * CGFloat(M_PI))
    
            // 逆时针旋转 90 度,270/180 * M_PI,1 度 = PI/180 弧度
            slider.transform = CGAffineTransformMakeRotation(1.5 * CGFloat(M_PI))
    
        // 获取当前值
        let thumbImage:UIImage? = slider.currentThumbImage                 // 获取当前滑块的图片值
        let minimumTrackImage:UIImage? = slider.currentMinimumTrackImage   // 获取当前滑过的进度条的图片值
        let maximumTrackImage:UIImage? = slider.currentMaximumTrackImage   // 获取当前未滑过的进度条的图片值
    
        // 添加点击触发事件
        slider.addTarget(self, action: #selector(UiSlider.sliderClick(_:)),
                     forControlEvents: .ValueChanged)

3、UISlider 透明化处理

  • 经过处理后的 UISlider 就只能看到中间的 ThumbImage 了,而 ThumbImage 左右的颜色都变成透明的。之后可以再设置上颜色等。
  • Objective-C
        UIGraphicsBeginImageContextWithOptions(CGSizeMake(1, 1), NO, 0.0f);
        UIImage *transparentImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
    
        [slider setMinimumTrackImage:transparentImage forState:UIControlStateNormal];
        [slider setMaximumTrackImage:transparentImage forState:UIControlStateNormal];
  • Swift
        UIGraphicsBeginImageContextWithOptions(CGSizeMake(1, 1), false, 0.0)
        let transparentImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
    
        slider.setMinimumTrackImage(transparentImage, forState: .Normal)
        slider.setMaximumTrackImage(transparentImage, forState: .Normal)

4、Storyboard 中设置

  • 在 Storyboard 场景中设置

    • Slider 设置

      Value 最小值/最大值/当前值
      Min Image 最小值图片
      Max Image 最大值图片
      Min Track Tint 滑过的颜色
      Max Track Tint 未滑过的颜色
      Thumb Tint 滑块颜色
      Events
      -- Continuous Updates
    • Control 设置

      Alignment 文字对齐方式
      Content
      -- Selected 选中
      -- Enable 可用
      -- Highlighted 高亮
时间: 2024-09-27 13:44:40

iOS - UISlider的相关文章

IOS UISlider用法总结

UIslider滑块控件在IOS开发中会常用到,可用于调节音量,字体大小等UI方面的交互,用法总结如下: 初始化一个滑块: ? 1  UISlider * slider = [[UISlider alloc]initWithFrame:CGRectMake(0, 0, 100, 100)]; 设置滑块位置 @property(nonatomic) float value;  这个值是介于滑块的最大值和最小值之间的,如果没有设置边界值,默认为0-1: 设置滑块最小边界值(默认为0) @proper

iOS中的UISlider滑块组件用法总结_IOS

PC上的滑块是很丑陋的,因为我们只能通过鼠标去拖动他.不过当Jobs把它移植到IOS上时一切变得酷起来,因为我们可以通过手指去拖动它,这种感觉是很妙的. 滑块为用户提供了一种可见的做范围调整的方法,用户可以通过拖动一个滑动条改变它的值,并且可以对其配置以合适不同值域.你可以设置滑块值的范围,也可以在两端加上图片,以及进行各种调整让它更美观.滑块非常适合用于表示在很大范围(但不精确)的数值中进行选择,比如音量设置.灵敏度控制等诸如此类的用途.一.创建滑块是一个标准的UIControl.我们可以通过

ios开发-UISlider 与 UIProgressView 区别

问题描述 UISlider 与 UIProgressView 区别 UISlider 与 UIProgressView 这两个有啥区别 解决方案 代码详见:http://ios.9tech.cn/news/2013/0930/29208.html 解决方案二: 三.UISlider 滑块 四.UIProgressView 进度条 三.UISlider 滑块 UISlider对象是一个用来显示从一系列的值中选择一个单一的值的可视化控制器.滑块始终为横条,一个指示器用来标注这个滑块的当前值,并且可以

iOS开发技巧 - 使用UISlider来调整值的范围

(Swift) import UIKit class ViewController: UIViewController { var slider: UISlider! func sliderValueChanged(slider: UISlider) { println("Slider's new value is \(slider.value)") } override func viewDidLoad() { super.viewDidLoad() slider = UISlide

开源中国iOS客户端学习 (一) Prefix.pch文件

当我们新建一个工程的时候,在Supporting FIles文件下会看到一个以  -Prefix.pch结尾文 件的文件,pch全称是"precompiled header",也就是预编译头文件,该文件里存放的工程中一些不 常被修改的代码,比如常用的框架头文件,这样做的目的提高编译器编译速度.我们知道当我们修改一 个工程中某个文件代码时候,编译器并不是重新编译所有所有文件,而是编译改动过文件的,假如pch 中某个文件修改了,那么pch整个文件里包含的的其他文件也会重新编译一次,这样就会

史上最全的iOS开源项目分类汇总

楼主转载的,并未亲自测试 Category/Util  sstoolkit 一套Category类型的库,附带很多自定义控件 功能不错-        BFKit 又一套Category类型的 Kit,还有几个工具类        APUtils 又一套Category类型的 Kit        QSKit 又一套Category类型的 Kit        iOS-Categories 又一套Category类型的 Kit        BlocksKit 将Block风格带入UIKit和F

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)

图像: 1.图片浏览控件MWPhotoBrowser        实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作.       下载:https://github.com/mwaterfall/MWPhotoBrowser   目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code.SourceForge等地方.由于Github社区太过主流,这里主要介绍一下Gith

常用iOS的第三方框架

图像:1.图片浏览控件MWPhotoBrowser       实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作.      下载:https://github.com/mwaterfall/MWPhotoBrowser 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code.SourceForge等地方.由于Github社区太过主流,这里主要介绍一下Github里面流

开源 iOS 项目分类索引大全

mattt大神的发布程序:https://github.com/nomad/shenzhen ----------------Mac完整项目----------电台:https://github.com/myoula/sostart ----------------iOS完整项目----------------1,豆瓣相册 https://github.com/TonnyTao/DoubanAlbum2,voa在线英语 https://github.com/cubewang/NewsReader