2009-05-29 78 views
1

我有我用下面的触摸事件作出回应定制滑块:iPhone滑块灵敏度

[bSlider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged]; 

我觉得很难用,它并没有触摸响应时间大约50%。与音乐播放器的音量滑块相比,每当您触摸它时,效果都很棒。是否有任何秘密来创建代码中的滑块,使其更具响应性?

回答

0

那么我尝试了几件事情,包括上面的建议,但从来没有让我的滑块工作,以及音乐应用程序中的iPhone音量滑块。唯一帮助的是在按钮图像周围添加一个清晰的背景,以增大触摸空间。这就造成了问题,让按钮一直滑动到我从未完全解决的滑块的底部和顶部。现在OS 3.0似乎工作得更好。

1

问题是您正在跟踪的事件。 UIControlEventTouchUpInside意味着如果在手指仍处于控件边界时向上抬起手指,则只会调用-start方法,这在滑块上不容易实现。

你可能想要的是UIControlEventTouchUpOutside和/或UIControlEventTouchDragExit,它将调用-start或者当您松开手指控制的范围之外,或者当你的手指从控制中拖动到其边界以外的分别。

查看UIControl reference了解更多信息。

+0

感谢您的反馈,但我发布我第一次复制了错误的行。我修复了它,并使用UIControlEventValueChanged。 – Aaron 2009-05-29 22:32:57

3

我与我的自定义UISlider有同样的问题,并通过在外部使用透明度较大的“拇指”图像来解决此问题。

我也有我的回调函数运行缓慢,造成滑块是非常laggy和笨拙通过在函数的顶部添加一个简单的检查使用,这是我固定的问题:

int val = ceil(sliderView.value); 
if (val == _lastSliderVal) return; 
_lastSliderVal = val; 

// .. code to update various display elements based on slider value 

后改变这两个,滑块运作良好。