初始化一个Slider

 

UISlider *slider = [[UISlider alloc]initWithFrame:CGRectMake(0, 400,320 , 20)];

滑块是一个标准的UIControl。我们可以通过代码创建,如同开关(UISwitch)的宽与高都会被忽略一样滑块的高也会被忽略(但是宽度不会):
 
二、设定范围与默认值

创建完毕的同时我们要设置好滑块的范围,如果你没有设置,那么会使用默认的 0.0 到 1.0 之间的值。UISlider提供了两个属性来设置范围:mininumValue 和 maxinumValue:

  1. mySlider.mininumValue = 0.0;//下限
  2. mySlider.maxinumValue = 50.0;//上限

同时你也可以为滑块设定一个默认值:

  1. mySlider.value = 22.0;

改变UISlider的外观

    

    

slider.minimumValueImage = [UIImage imageNamed:@"设置slider左边的图片"];

slider.maximumValueImage = [UIImage imageNamed:@"设置slider右边的图片"];

//设置了会减小滚动区域的宽度,但整个slider的宽度不变

[slider setMinimumTrackImage:[UIImage imageNamed:@"设置滑轮左边的图片,最好宽度和slider一样"] forState:UIControlStateNormal];

[slider currentMinimumTrackImage]; //得到当前滑轮左边的图片如果有的话

    

[slider setMaximumTrackImage:[UIImage imageNamed:@"设置滑轮左边的图片,最好宽度和slider一样"] forState:UIControlStateNormal];

[slider currentMaximumTrackImage]; //得到当前滑轮右边的图片如果有的话

 


把蓝色的设置为MinimumTrackImage

把灰色的设置为MaximumTrackImage

可以加一个label用于显示value,在UISlider的行为的change方法里改变label.text属性

    

slider.minimumTrackTintColor = [UIColor redColor]; //滑轮左边颜色如果设置了左边的图片就不会显示

slider.maximumTrackTintColor = [UIColor redColor]; //滑轮右边颜色如果设置了右边的图片就不会显示

    

[slider thumbImageForState:UIControlStateNormal];  

[slider setThumbImage:[UIImage imageNamed:@"设置滑轮样子的图片"] forState:UIControlStateHighlighted];//设置了普通状态和高亮状态的滑轮样式

slider.thumbTintColor = [UIColor redColor];//设置了滑轮的颜色如果设置了滑轮的样式图片就不会显示

 

你可以根据滑块的各种不同状态显示不同的图像。下面是可用状态:

UIControlStateNormal

UIControlStateHighlighted

UIControlStateDisabled

UIControlStateDisabled

UIControlStateSelected

四、显示控件

  1. [ parentView addSubview:myslider ];//添加到父视图
  2. [ self.navigationItem.titleView addSubview:myslider ];//添加到导航栏

五、读取控件值

  1. float value = mySlider.value;

六、通知

要想在滑块值改变时收到通知,可以用UIControl类的addTarget方法为UIControlEventValueChanged事件添加一个动作。

  1. [ mySlider addTarget:self action:@selector(sliderValueChanged:) forControlEventValueChanged ];

只要滑块停放(注意是停放,如果要在拖动中也触发,请看后文)到新的位置,你的动作方法就会被调用:

  1. - (void) sliderValueChanged:(id)sender{
  2. UISlider* control = (UISlider*)sender;
  3. if(control == mySlider){
  4. float value = control.value;
  5. }
  6. }

如果要在拖动中也触发,需要设置滑块的 continuos 属性:

  1. mySlider.continuous = YES ;

这个通知最简单的一个实例就是实时显示滑块的值,很奇怪的苹果显示滑块的值是一个私有的API(setShowValue),私有就私有,大不了我不用就是。我们可以用一个UILabel来显示值,在每次触发上面的方法时改变label的值,不就可以实时显示了吗?当然我们可以做的不仅仅是这个,还有更多的 cool 事情可以去实现,就看你的手段与想象力了。

主要是UISlider跟换thumb 与 状态条 bar 的替换

 
   // 让Slider控件旋转90度 垂直
 
    CGAffineTransform rotation = CGAffineTransformMakeRotation(-1.57079633);

self.volumeSlider.transform = rotation;

//跟换Thumb

[self.volumeSlider setThumbImage:image1 forState:UIControlStateNormal];

// 跟换bar  并且实现拖动效果

//覆盖的图片

[self.volumeSlider setMinimumTrackImage:image2 forState:UIControlStateNormal];

//底片

[self.volumeSlider setMaximumTrackImage:image forState:UIControlStateNormal];

ios之UISlider的更多相关文章

  1. iOS开发-UISlider改变图片透明度

    拖动条是通过滑块的位置来标识数值,而且拖动条允许用户拖动滑块来改变值.因此,拖动条通常用于对系统的某种数值进行调节,如调节亮度,透明度,音量等. 一.属性介绍 @property(nonatomic) ...

  2. iOS - UI - UISlider

    6.UISlider //滑块   设置高度 UISlider * slider = [[UISlider alloc] initWithFrame:CGRectMake(20, 100, CGRec ...

  3. React Native组件之Switch和Picker和Slide

    React Native组件Switch类似于iOS中的UISwitch:组件Slide类似于iOS中UIslider,组件Picker类似于iOS的UIPickerView.他们的使用方法和相关属性 ...

  4. iOS - UISlider

    前言 NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UISlider : UIControl <NSCoding> @a ...

  5. ios基础篇(七)——UISwich、UISlider、UIProgressView的用法总结

    一.UISlider UIslider滑块控件在IOS开发中会常用到,可用于调节音量,字体大小等UI方面的交互:UISlider实例提供一个控件,让用户通过左右拖动一个滑块(可称其为“缩略图”)来选择 ...

  6. 在ios开发中nil和NUll和Nilde区别————和如何判断连个对象的关系和UISlider不能拖动的问题

    nil表示一个对象指针为空,针对对象 >示例代码: NSString *someString = nil; NSURL *someURL = nil; id someObject = nil; ...

  7. 【IOS 开发】基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )

    转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50163725 一. 分段控件 (UISegmentedControl) 控件展 ...

  8. iOS开发之七:常用控件--UISlider、UISegmentedControl、UIPageControl的使用

    一.UISlider的使用 其实UISlider在iOS开发中用的似乎不是很多,我们看到的用到的地方多是音乐播放器的音量控制,以及视频播放器中的音量控制. 还是记录一下吧! 1.常用属性 // 设置获 ...

  9. iOS 全屏侧滑/UIScrollView/UISlider间滑动冲突

    代码地址如下:http://www.demodashi.com/demo/13848.html 效果预览 一.前期准备 有一个支持全屏侧滑返回的视图控制器ViewController,ViewCont ...

随机推荐

  1. Ogre 学习记录

    http://www.cppblog.com/richardhe/articles/55722.html 1: 设计初衷 它设计初衷是完全跨平台的.抽象的接口隐藏了平台相关的细节. 它设计初衷是大幅度 ...

  2. 小奇的仓库(树形DP)

    「题目背景」 小奇采的矿实在太多了,它准备在喵星系建个矿石仓库.令它无语的是,喵星系的货运飞船引擎还停留在上元时代! 「问题描述」 喵星系有n个星球,星球以及星球间的航线形成一棵树. 从星球a到星球b ...

  3. [Noip2012普及组]摆花

    Description 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 m 盆.通过调查顾客的喜好,小明列出了顾客最喜欢的 n 种花,从 1 到 n 标号.为了在门口展出更多种花,规定 ...

  4. hadoop HA集群搭建(亲测)

    1.hadoop-env.sh 2.core-site.xml <configuration> <!-- 指定hdfs的nameservice为ns1 --> <prop ...

  5. E - Round Numbers

    #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> ...

  6. FMDB存储模型对象(以二进制存储)用NSKeyedArchiver archivedDataWithRootObject序列号,NSKeyedUnarchiver unarchiveObjectWithData反序列化(重点坑是sql语句@"insert into t_newsWithChannel (nwesName,newsType) values (?,?)")一定要用占位符

    交友:微信号 dwjluck2013 一.封装FMDB单例 (1)JLFMDBHelp.h文件 #import <Foundation/Foundation.h> #import < ...

  7. Hive_Hive的管理_web界面方式

    端口:9999启动方式: hive --service hwi &通过浏览器访问:http://<IP地址>:9999/hwi/ 执行启动命令后,报错,找不到hive-hwi-*. ...

  8. SSE练习:单精度浮点数组求和

    SSE(Streaming SIMD Extensions)指令是一种SIMD 指令, Intrinsics函数则是对SSE指令的函数封装,利用C语言形式来调用SIMD指令集,大大提高了易读性和可维护 ...

  9. B. Apple Tree 暴力 + 数学

    http://codeforces.com/problemset/problem/348/B 注意到如果顶点的数值确定了,那么它分下去的个数也就确定了,那么可以暴力枚举顶点的数值. 顶点的数值是和LC ...

  10. The Weakest Sith

    http://codeforces.com/gym/101149/problem/F 题目要输出最丑陋的衣服.所以每件衣服都要和其他衣服比一次. 但是注意到,能赢一件衣服的衣服,就算是好衣服了. 那么 ...