如何创建与选区对齐的滑块

时间:2013-03-07 22:16:58

标签: iphone ios cocoa-touch

我如何制作一个可以与选区对齐的滑块。我在那里有3个选项,一个在左边,一个在右边,一个在中间。当用户向左拖动滑块时,它将动画并捕捉到左选择。对正确和中间的影响相同。

如果您熟悉应用程序UBER,他们有一些东西(有4个部分)正是我所说的。屏幕截图(底部的滑块):  http://i.imgur.com/xTPfDcY.png

知道如何实现这个吗?我应该使用UISlider吗?

非常感谢, 加布

2 个答案:

答案 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];
    }
}

显然你需要检查三个不同的范围。我发布的代码使滑块看起来在中间有一个制动器。您可能还需要跟踪滑块的移动方向,以便您知道向左或向右移动滑块。