我如何制作一个可以与选区对齐的滑块。我在那里有3个选项,一个在左边,一个在右边,一个在中间。当用户向左拖动滑块时,它将动画并捕捉到左选择。对正确和中间的影响相同。
如果您熟悉应用程序UBER,他们有一些东西(有4个部分)正是我所说的。屏幕截图(底部的滑块):
知道如何实现这个吗?我应该使用UISlider吗?
非常感谢, 加布
答案 0 :(得分:6)
在不考虑Uber滑块的自定义外观的情况下,您可以通过在滑块上侦听Touch Up Inside事件(以及Touch Up Outside,为了完整性)来设置其“动画捕捉”行为,并将其值设置为最接近的整数值:
- (IBAction)sliderTouchUp:(UISlider *)sender
{
[sender setValue:floorf([sender value] + 0.5) animated:YES];
}
将最小值设置为1,将最大值设置为3将使滑块上有三个“停止”,当用户释放滑块时,它将设置为最近的停止点。
答案 1 :(得分:1)
基本思路是,您希望在用户移动滑块时查看滑块的当前值,如果它在“捕捉”范围内,则将滑块的值设置为所需的位置。像这样:
- (void)sliderUpdated:(UISlider *)slider {
float val = slider.value;
if (val>= 0.46 && val <= 0.54) {
[slider setValue:0.5 animated:YES];
}
}
显然你需要检查三个不同的范围。我发布的代码使滑块看起来在中间有一个制动器。您可能还需要跟踪滑块的移动方向,以便您知道向左或向右移动滑块。