IOS的UISlide
2016-07-06 14:17
537 查看
初始化一个Slider
UISlider *slider = [[UISlideralloc]initWithFrame:CGRectMake(0, 400,320 , 20)];
滑块是一个标准的UIControl。我们可以通过代码创建,如同开关(UISwitch)的宽与高都会被忽略一样滑块的高也会被忽略(但是宽度不会):
二、设定范围与默认值
创建完毕的同时我们要设置好滑块的范围,如果你没有设置,那么会使用默认的 0.0 到 1.0之间的值。UISlider提供了两个属性来设置范围:mininumValue 和 maxinumValue:
源码打印?
mySlider.mininumValue = 0.0;//下限
mySlider.maxinumValue = 50.0;//上限
同时你也可以为滑块设定一个默认值:
源码打印?
mySlider.value = 22.0;
改变UISlider的外观
slider.minimumValueImage = [UIImageimageNamed:@"设置slider左边的图片"];
slider.maximumValueImage = [UIImageimageNamed:@"设置slider右边的图片"];
//设置了会减小滚动区域的宽度,但整个slider的宽度不变
[slider setMinimumTrackImage:[UIImageimageNamed:@"设置滑轮左边的图片,最好宽度和slider一样"]forState:UIControlStateNormal];
[slidercurrentMinimumTrackImage]; //得到当前滑轮左边的图片如果有的话
[slider setMaximumTrackImage:[UIImageimageNamed:@"设置滑轮左边的图片,
fbca
最好宽度和slider一样"]forState:UIControlStateNormal];
[slidercurrentMaximumTrackImage]; //得到当前滑轮右边的图片如果有的话
把蓝色的设置为[b]MinimumTrackImage[/b]
把灰色的设置为[b][b][b]MaximumTrackImage[/b][/b][/b]
可以加一个label用于显示value,在UISlider的行为的change方法里改变label.text属性
slider.minimumTrackTintColor = [UIColorredColor]; //滑轮左边颜色如果设置了左边的图片就不会显示
slider.maximumTrackTintColor = [UIColorredColor]; //滑轮右边颜色如果设置了右边的图片就不会显示
[slider thumbImageForState:UIControlStateNormal];
[slider setThumbImage:[UIImageimageNamed:@"设置滑轮样子的图片"]forState:UIControlStateHighlighted];//设置了普通状态和高亮状态的滑轮样式
slider.thumbTintColor = [UIColorredColor];//设置了滑轮的颜色如果设置了滑轮的样式图片就不会显示
你可以根据滑块的各种不同状态显示不同的图像。下面是可用状态:
UIControlStateNormal
UIControlStateHighlighted
UIControlStateDisabled
UIControlStateDisabled
UIControlStateSelected
四、显示控件
源码打印?
[ parentView addSubview:myslider ];//添加到父视图
或
[ self.navigationItem.titleView addSubview:myslider ];//添加到导航栏
五、读取控件值
源码打印?
float value = mySlider.value;
六、通知
要想在滑块值改变时收到通知,可以用UIControl类的addTarget方法为UIControlEventValueChanged事件添加一个动作。
源码打印?
[ mySlider addTarget:self action:@selector(sliderValueChanged:) forControlEventValueChanged ];
只要滑块停放(注意是停放,如果要在拖动中也触发,请看后文)到新的位置,你的动作方法就会被调用:
源码打印?
- (void) sliderValueChanged:(id)sender{
UISlider* control = (UISlider*)sender;
if(control == mySlider){
float value = control.value;
}
}
如果要在拖动中也触发,需要设置滑块的continuos 属性:
源码打印?
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];
UISlider *slider = [[UISlideralloc]initWithFrame:CGRectMake(0, 400,320 , 20)];
滑块是一个标准的UIControl。我们可以通过代码创建,如同开关(UISwitch)的宽与高都会被忽略一样滑块的高也会被忽略(但是宽度不会):
二、设定范围与默认值
创建完毕的同时我们要设置好滑块的范围,如果你没有设置,那么会使用默认的 0.0 到 1.0之间的值。UISlider提供了两个属性来设置范围:mininumValue 和 maxinumValue:
源码打印?
mySlider.mininumValue = 0.0;//下限
mySlider.maxinumValue = 50.0;//上限
同时你也可以为滑块设定一个默认值:
源码打印?
mySlider.value = 22.0;
改变UISlider的外观
slider.minimumValueImage = [UIImageimageNamed:@"设置slider左边的图片"];
slider.maximumValueImage = [UIImageimageNamed:@"设置slider右边的图片"];
//设置了会减小滚动区域的宽度,但整个slider的宽度不变
[slider setMinimumTrackImage:[UIImageimageNamed:@"设置滑轮左边的图片,最好宽度和slider一样"]forState:UIControlStateNormal];
[slidercurrentMinimumTrackImage]; //得到当前滑轮左边的图片如果有的话
[slider setMaximumTrackImage:[UIImageimageNamed:@"设置滑轮左边的图片,
fbca
最好宽度和slider一样"]forState:UIControlStateNormal];
[slidercurrentMaximumTrackImage]; //得到当前滑轮右边的图片如果有的话
把蓝色的设置为[b]MinimumTrackImage[/b]
把灰色的设置为[b][b][b]MaximumTrackImage[/b][/b][/b]
可以加一个label用于显示value,在UISlider的行为的change方法里改变label.text属性
slider.minimumTrackTintColor = [UIColorredColor]; //滑轮左边颜色如果设置了左边的图片就不会显示
slider.maximumTrackTintColor = [UIColorredColor]; //滑轮右边颜色如果设置了右边的图片就不会显示
[slider thumbImageForState:UIControlStateNormal];
[slider setThumbImage:[UIImageimageNamed:@"设置滑轮样子的图片"]forState:UIControlStateHighlighted];//设置了普通状态和高亮状态的滑轮样式
slider.thumbTintColor = [UIColorredColor];//设置了滑轮的颜色如果设置了滑轮的样式图片就不会显示
你可以根据滑块的各种不同状态显示不同的图像。下面是可用状态:
UIControlStateNormal
UIControlStateHighlighted
UIControlStateDisabled
UIControlStateDisabled
UIControlStateSelected
四、显示控件
源码打印?
[ parentView addSubview:myslider ];//添加到父视图
或
[ self.navigationItem.titleView addSubview:myslider ];//添加到导航栏
五、读取控件值
源码打印?
float value = mySlider.value;
六、通知
要想在滑块值改变时收到通知,可以用UIControl类的addTarget方法为UIControlEventValueChanged事件添加一个动作。
源码打印?
[ mySlider addTarget:self action:@selector(sliderValueChanged:) forControlEventValueChanged ];
只要滑块停放(注意是停放,如果要在拖动中也触发,请看后文)到新的位置,你的动作方法就会被调用:
源码打印?
- (void) sliderValueChanged:(id)sender{
UISlider* control = (UISlider*)sender;
if(control == mySlider){
float value = control.value;
}
}
如果要在拖动中也触发,需要设置滑块的continuos 属性:
源码打印?
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];
相关文章推荐
- usage of stack and queue
- UEditor图片上传配置问题解决
- Android CPU使用率:top和dump cpuinfo的不同
- 【WWDC2016 Session笔记】 iOS 10 UICollectionView新特性
- Android spannableStringBuilder用法整理
- UE4实现描边效果
- UE4实现描边效果
- Longest Common Subsequence & Substring & prefix
- 超越之MongDB系列教程(十)MongDB_VUE工具使用(完)
- iOS NSDictionary里的keysSortedByValueUsingSelector排序使用
- Java并发包:阻塞队列(BlockingQueue)
- requestLayout() improperly called by android.widget.GridView{43cefbd VFED.VC.. .F...... 0,0-2190,319
- LeetCode刷题系列(十二)Quick Questions
- Context.managedQuery()和context.getContentResolver()获取Cursor关闭注意事项
- Ueditor在php中上传至七牛
- Error:Execution failed for task ':***:compileDebugAidl'.finished with non-zero exit value 3
- STL_Deque
- 使用pyquery碰到的问题
- ElasticSearch 全文检索 termQuery和queryString
- GCC内联函数:__builtin_types_compatible_p