扩展UIControl命中区域的最佳方法是什么?

时间:2012-02-10 19:55:57

标签: ios cocoa-touch

如果你在iPod /音乐应用程序中注意到,当你点击进度滑块时,你可以从小旋钮上轻轻一点,它仍然会像你点击它一样注册。对于UINavigationController工具栏中的按钮也是如此,请注意如何(如果附近没有任何东西)你可以按下相当远的按钮。后退按钮,它仍然会注册。

如何为自己的控件实现最佳效果?我实际上是在UIProgress滑块上进行的。

1 个答案:

答案 0 :(得分:2)

有一种复杂的方法涉及在自定义UIControl子类上覆盖hitTest方法,但最简单的解决方案是使控件大于屏幕上的可见大小。

例如,对于一个按钮,您可以将按钮本身设置为50x50像素,但使按钮图形为20x20像素,因此它看起来很小但是命中区域很大。

相同的技术可以适用于您的滑块。使UISlider框架非常高(例如50px),但滑块图形更小。如果它不能很好地工作,因为控件将它们拉伸以适合,只需使滑块的图形本身透明,并在真实滑块控件后面的图像视图中绘制较薄的滑块。