Iphone 当UISlider超过某个值时,如何持续更新?

Iphone 当UISlider超过某个值时,如何持续更新?,iphone,objective-c,ios4,Iphone,Objective C,Ios4,我正在实现一个UISlider,它允许用户在足球场上选择一个位置。滑块的概念是当滑块值高于某个值(带箭头的部分)时,字段向前滚动 我的问题是,我只能响应UIControlEventValueChanged上的滑块-因此只有当用户实际移动滑块时,字段才会向前滚动。我希望它向前移动,只要值高于某个数量 你知道我该怎么做吗?(我愿意接受任何建议,包括不使用UISlider的实现、复合实现等) 以下是实现: 尝试将滑块的continuous属性设置为YES。处理此问题的最简单方法是使用计时器。向类中添加

我正在实现一个UISlider,它允许用户在足球场上选择一个位置。滑块的概念是当滑块值高于某个值(带箭头的部分)时,字段向前滚动

我的问题是,我只能响应UIControlEventValueChanged上的滑块-因此只有当用户实际移动滑块时,字段才会向前滚动。我希望它向前移动,只要值高于某个数量

你知道我该怎么做吗?(我愿意接受任何建议,包括不使用UISlider的实现、复合实现等)

以下是实现:


尝试将滑块的
continuous
属性设置为YES。

处理此问题的最简单方法是使用计时器。向类中添加一个NSTimer实例变量,该变量根据下面的示例命名-
moveTimer
,然后设置如下内容:

- (void)sliderChanged:(UISlider *)slider
{
    if(slider.value > 5)
    {
        if(moveTimer == nil)
        {
            moveTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self action:@selector(move) repeats:YES];
        }
    }
    else
    {
        if(moveTimer != nil)
        {
            [moveTimer invalidate];
            moveTimer = nil;
        }
    }
}

- (void)move
{
    // update the background behind your slider
}

我找到了一个适合我的解决方案:

    [self performSelector:@selector(sliderMoved) withObject:nil afterDelay:0.5];

当slider.value>0.5时,我每0.5秒调用一次sliderMoved方法。

否,这不起作用。问题是,只要slider.value>threshold,我就需要在下一个视图周期中不断重画背景。所以滑块不必移动。它说我的声誉还不足以回答我自己的问题,但我发现有一个解决方案有效:[自执行选择器:@selector(sliderMoved)with object:nil afterDelay:0.5];当slider.value>0.5时,我每0.5秒调用一次sliderMoved方法。