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