博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS - UISlider
阅读量:6204 次
发布时间:2019-06-21

本文共 5269 字,大约阅读时间需要 17 分钟。

前言

NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UISlider : UIControl 
@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 设置

      Slider1

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

      Slider2

      Alignment 文字对齐方式
      Content
      -- Selected 选中
      -- Enable 可用
      -- Highlighted 高亮

转载地址:http://ethca.baihongyu.com/

你可能感兴趣的文章
vrrp
查看>>
Python 练习册,每天一个小程序
查看>>
由旋转矩阵求旋转中心
查看>>
89. Gray Code - LeetCode
查看>>
linux 用户行为审计
查看>>
sublime_text 3 注册序列号
查看>>
我的友情链接
查看>>
从尾到头打印链表
查看>>
[java理论篇]--java的其他常用API
查看>>
求三位数的质数
查看>>
好程序员web前端分享JS引擎的执行机制
查看>>
VMware安装CentOS之二——最小化安装CentOS
查看>>
mycat读写分离部署步骤
查看>>
zabbix通过JMX监控Tomcat及一些报错
查看>>
linux中的守护进程
查看>>
【公告】社区周刊即日起停刊
查看>>
程序员容易不能生育?
查看>>
KeyMob:为国内应用开发者管理的广告聚合平台
查看>>
2016国内移动广告平台排行榜
查看>>
利用百度LBS做一个小Demo
查看>>