iPhone滑块灵敏度

时间:2009-05-29 22:18:10

标签: iphone

我有自定义滑块,我使用以下触摸事件来响应:

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

我发现它很难使用,它在大约50%的时间内都没有响应。与音量播放器相比,音乐播放器每次触摸时效果都很好。在代码中创建滑块是否有任何秘密可以使其更具响应性?

3 个答案:

答案 0 :(得分:4)

我的自定义UISlider遇到了同样的问题,并通过使用外部透明的更大的“拇指”图像解决了这个问题。

我的回调函数运行缓慢并导致滑块使用非常迟钝和笨拙,我也遇到了问题,我通过在函数顶部添加一个简单的检查来解决这个问题:

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

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

更改这两个后,滑块工作得很漂亮。

答案 1 :(得分:1)

问题在于您正在跟踪的事件。 UIControlEventTouchUpInside表示只有在手指仍处于控件范围内时抬起手指才会调用-start方法,这在滑块上并不容易。

您可能想要的是UIControlEventTouchUpOutside和/或UIControlEventTouchDragExit,当您将手指抬离控制范围或手指被从内部拖出时,它会调用-start分别控制到其范围之外。

有关详细信息,请参阅UIControl reference

答案 2 :(得分:0)

好吧,我尝试了几项内容,包括上面的建议,但从未让我的滑块与音乐应用中的iPhone音量滑块一样好用。唯一有帮助的是在按钮图像周围添加清晰的背景以使触摸空间更大。这就产生了一些问题,让按钮一直滑到我从未完全解决的滑块底部和顶部。现在使用OS 3.0似乎工作得更好。

相关问题