初始化一个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. uoj#283. 直径拆除鸡(构造)

    传送门 好神的构造题 vfk巨巨的题解 //minamoto #include<bits/stdc++.h> #define R register #define fp(i,a,b) fo ...

  2. jzoj5986. 【WC2019模拟2019.1.4】立体几何题 (权值线段树)

    传送门 题面 题解 不难看出每个点的大小为行列限制中较小的那一个(因为数据保证有解) 对于行的每个限制,能取到的个数是列里限制大于等于它的数的个数,同理,对于列是行里大于它的个数(这里没有等于,为了避 ...

  3. Spring Boot Autowirted注入找不到Bean对象解决方法

    报错:Consider defining a bean of type 'xxxxxxxxxxxxx' in your configuration 1. 你应该在 ApplyApplication 启 ...

  4. 新装centos 6.5 基本配置

    开机自动联网 vi /etc/sysconfig/network-scripts/ifcfg-eth0; 将ONBOOT=no,改为ONBOOT=yes,保存退出 开机直接进入命令行模式 vi /et ...

  5. Spring security + oauth2.0 + redis + mybatis plus 搭建微服务

    上个星期一个朋友请求帮忙,让我搭建一个分布式授权中心的微服务,之前我也没搭建过,在网上撸了几天前辈们写的技术博客,搞出个模型,分享给大家: 前辈们博客地址: OAuth2.0 原理:https://b ...

  6. ES5(基本包装类型)字符串的方法

    看一下字符串有哪些常用的方法: 1.concat();将多个文本组合起来,返回新的字符串,就是拼接字符串. 查找位置 2.indexOf();返回要匹配的字符在字符串第一次出现的索引,参数就是匹配的字 ...

  7. 转 载python数据分析(1)-numpy产生随机数

    转自:http://blog.csdn.net/jinxiaonian11/article/details/53143141 在数据分析中,数据的获取是第一步,numpy.random 模块提供了非常 ...

  8. HTML表格的基本结构标记

    <table>标记 1.基本格式:<table 属性1="属性值1" 属性2="属性值2" ... ...>表格内容</table ...

  9. RS485的自动发送与布线

    布线http://blog.sina.com.cn/s/blog_729a492301019owo.html 自动收发电路:485注意控制端电平问题(3.3/5V)

  10. 牛客网Java刷题知识点之Iterator和ListIterator的区别

    不多说,直接上干货! https://www.nowcoder.com/ta/review-java/review?query=&asc=true&order=&page=21 ...