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

Joj*_*o44 10 uislider ios swift

我设法增加我的拇指大小UISliderSwift但触摸区域仍然太小,我的应用程序.

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

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

谢谢!

Lio*_*ion 15

子类UISlider和您的自定义滑块类添加此方法,

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

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

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


Pet*_*inz 10

Swift 3更新Lion的好答案:

import UIKit

class CustomSlider: UISlider {

     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)
     }
}
Run Code Online (Sandbox Code Playgroud)