iOS开发之可双向调节的Slider滑块

滑块在很多地方都有使用,所以这里向大家展示一个自定义的可双向控制的Slider,并且可以通过代理方法获取相应的范围值,部分代码如下:

属性值:

/**
 设置最小值
 */
@property (nonatomic,assign)CGFloat minNum;

/**
 设置最大值
 */
@property (nonatomic,assign)CGFloat maxNum;

/**
 设置min 颜色
 */
@property (nonatomic,weak)UIColor *minTintColor;

/**
 设置max 颜色
 */
@property (nonatomic,weak)UIColor *maxTintColor;

/**
 设置 中间 颜色
 */
@property (nonatomic,weak)UIColor *mainTintColor;

/**
 显示较小的数Label
 */
@property (nonatomic,strong)UILabel *minLabel;

/**
 显示较大的数Label
 */
@property (nonatomic,strong)UILabel *maxLabel;

/**
 当前最小值
 */
@property (nonatomic,assign)CGFloat  currentMinValue;

/**
 当前最大值
 */
@property (nonatomic,assign)CGFloat  currentMaxValue;

/**
 显示 min 滑块
 */
@property (nonatomic,strong)UIButton *minSlider;

/**
 显示 max 滑块
 */
@property (nonatomic,strong)UIButton *maxSlider;

/**
 设置单位
 */
@property (nonatomic,copy)NSString * unit;

根据这些可以显示想要的颜色样式,

使用方式:

_slider = [[JLDoubleSlider alloc]initWithFrame:CGRectMake(0, 0, 300, 40)];
    _slider.unit = @"¥";
    _slider.minNum = 14;
    _slider.maxNum = 59;
    _slider.minTintColor = [UIColor redColor];
    _slider.maxTintColor = [UIColor blueColor];
    _slider.mainTintColor = [UIColor blackColor];
    
    [self.view addSubview:_slider];

界面效果:


源码下载:https://github.com/hbblzjy/JLDoubleSliderDemo







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要实现微信小程序的双向滑块slider,可以使用小程序官方提供的组件`<slider>`,并结合自定义组件和数据绑定来实现。 具体实现步骤如下: 1. 在小程序页面中引入`<slider>`组件,设置min、max、step、value等属性,如下: ```html <slider min="0" max="100" step="1" value="{{sliderValue}}" bindchange="onSliderChange"></slider> ``` 其中,`sliderValue`为双向滑块的值,`onSliderChange`为滑动时的回调函数。 2. 创建自定义组件`<double-slider>`,包含两个`<slider>`组件,分别用于设置起始值和结束值,如下: ```html <view class="double-slider"> <slider min="0" max="{{maxValue}}" step="{{step}}" value="{{startValue}}" bindchange="onStartChange"></slider> <slider min="{{startValue}}" max="{{maxValue}}" step="{{step}}" value="{{endValue}}" bindchange="onEndChange"></slider> </view> ``` 其中,`maxValue`为最大值,`step`为步长,`startValue`为起始值,`endValue`为结束值,`onStartChange`和`onEndChange`分别为起始值和结束值滑动时的回调函数。 3. 在页面中引入自定义组件`<double-slider>`,并设置相应的属性和绑定数据,如下: ```html <double-slider maxValue="100" step="1" startValue="{{startValue}}" endValue="{{endValue}}" onStartChange="onSliderChange" onEndChange="onSliderChange"></double-slider> ``` 其中,`maxValue`和`step`为自定义组件的属性,`startValue`和`endValue`为双向滑块的值,`onStartChange`和`onEndChange`为双向滑块滑动时的回调函数。 4. 在页面的js文件中,定义相应的函数来处理滑块滑动时的操作,如下: ```javascript Page({ data: { startValue: 0, endValue: 100 }, onSliderChange: function (e) { let value = e.detail.value; this.setData({ startValue: value[0], endValue: value[1] }); }, onStartChange: function (e) { let value = e.detail.value; this.setData({ startValue: value }); }, onEndChange: function (e) { let value = e.detail.value; this.setData({ endValue: value }); } }) ``` 其中,`onSliderChange`函数处理双向滑块滑动时的操作,将起始值和结束值保存在`startValue`和`endValue`中;`onStartChange`函数处理起始值滑动时的操作,将起始值保存在`startValue`中;`onEndChange`函数处理结束值滑动时的操作,将结束值保存在`endValue`中。 这样,就可以实现微信小程序的双向滑块slider了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hbblzjy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值