UISlider的一些用法

2018-05-31  本文已影响0人  Flandreko

UISlider属性

slider.minimumValue = 9;// 设置最小值 
slider.maximumValue = 11;// 设置最大值  
slider.continuous = YES;// 设置可连续变化  
slider.minimumTrackTintColor = RGBA(45, 215, 135, 1);//滑块左边颜色
slider.maximumTrackTintColor = RGBA(222, 222, 222, 1);//滑块右边颜色
slider.thumbTintColor = [UIColor clearColor];//滑块颜色
[slider setValue:10 animated:YES];//滑块位置
[slider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];//响应方法
//滑块图案
-(void)setThumbImage:(UIImage *)image forState:(UIControlState)state;
//设置滑块划过部分的线条图案
-(void)setMinimumTrackImage:(UIImage *)image forState:(UIControlState)state;
//设置滑块未划过部分的线条图案
-(void)setMaximumTrackImage:(UIImage *)image forState:(UIControlState)state;

Slider的滑块大小、自身高度、左右图片大小是可以改变的。我们需要在自定义Slider类中重写以下方法:

- (CGRect)minimumValueImageRectForBounds:(CGRect)bounds;  //返回左边图片大小  
- (CGRect)maximumValueImageRectForBounds:(CGRect)bounds;  //返回右边图片大小  
- (CGRect)trackRectForBounds:(CGRect)bounds;              //返回滑道大小  
- (CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value;  //返回滑块响应范围大小 

例子:设置滑道大小,与滑块响应范围

#import "newSlider.h"  
@implementation newSlider  
- (CGRect)trackRectForBounds:(CGRect)bounds {  
    return CGRectMake(0, 0, ScreenWidth, 8);  
}  

- (CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value{
    bounds = [super thumbRectForBounds:bounds trackRect:rect value:value];
    return CGRectMake(bounds.origin.x, bounds.origin.y, 20, 20);
}
@end  
上一篇下一篇

猜你喜欢

热点阅读