使用Swift增加UISlider的触摸目标大小

时间:2016-06-03 08:07:41

标签: ios swift uislider

我设法用UISlider增加Swift的拇指大小,但触摸区对我的应用来说仍然太小。

如何以编程方式增加UISlider的触摸区域大小?

我应该自己重新实现自定义滑块吗?

谢谢!

3 个答案:

答案 0 :(得分:13)

子类UISlider并在您的自定义滑块类中添加此方法

  func pointInside(_ point: CGPoint, withEvent event: UIEvent?) -> Bool {
    var bounds: CGRect = self.bounds
    bounds = CGRectInset(bounds, -10, -15)
    return CGRectContainsPoint(bounds, point)
}

然后在使用滑块时创建该子类的对象。

如果您在interfacebuilder(storyboard)中使用了滑块,则将其类设置为identity inspector中的自定义滑块类。

答案 1 :(得分:8)

Swift 3 更新Lion的好答案:

memoize

答案 2 :(得分:0)

Swift 5更新:

override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
        var bounds: CGRect = self.bounds
        bounds = bounds.insetBy(dx: -10, dy: -15)
        return bounds.contains(point)
    }