我必须使用双面 slider 来获得最小值和最大值。
在最小值和最大值之间也有标记,如下图所示。
|--------|-----------|---------|
10 20 30 40
当我在 10-20 之间拖动假设左 nob 时,如果值小于 15 则自动设置动画/移动到 10,但如果值大于 15 则它自动移动/设置为 20。
我不知道如何移动/动画它。
我正在使用REDRangeSlider项目作为引用。
我已根据您的要求对代码进行了一些更改。请检查这个。
在分配初始化此控件时添加此方法。
[self.rangeSlider addTarget:self actionselector(rangeSliderValueChanged forControlEvents:UIControlEventValueChanged];//This is already added.
[self.rangeSlider addTarget:self actionselector(dragEnded forControlEvents:UIControlEventTouchUpOutside];//add this
实现该方法——拖拽结束时调用该方法。
-(void)dragEndedid)sender
{
NSLog(@"called");
//Set your Conditions this is for testing.
if (self.rangeSlider.leftValue<15.0)
{
self.rangeSlider.leftValue = 10.0;
}
}
在REDRangeSlider 类中勾选这两个处理Pan Gesture 状态的方法,所以当你拖动end 时,方法会调用这个手势状态。那时调用这个你集成到你的主类中的 Action 。
- (void)leftHandlePanEngadgedUIGestureRecognizer *)gesture
{
else if (panGesture.state == UIGestureRecognizerStateCancelled ||
panGesture.state == UIGestureRecognizerStateEnded ||
panGesture.state == UIGestureRecognizerStateCancelled) {
self.leftHandle.highlighted = NO;
self.leftValue = [self roundValueToStepValue:self.leftValue];
//Change below line For Left .
[self sendActionsForControlEvents:UIControlEventTouchUpOutside];
}
}
- (void)rightHandlePanEngadgedUIGestureRecognizer *)gesture
{
UIPanGestureRecognizer *panGesture = (UIPanGestureRecognizer *)gesture;
//Other code ........
else if (panGesture.state == UIGestureRecognizerStateCancelled ||
panGesture.state == UIGestureRecognizerStateEnded ||
panGesture.state == UIGestureRecognizerStateCancelled) {
self.rightHandle.highlighted = NO;
self.rightValue = [self roundValueToStepValue:self.rightValue];
//Change below line For right .
[self sendActionsForControlEvents:UIControlEventTouchUpOutside];
}
}
关于ios - 如何在双面 slider 中将 slider 设置为标记的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23290294/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |