我设法用UISlider
增加Swift
的拇指大小,但触摸区对我的应用来说仍然太小。
如何以编程方式增加UISlider
的触摸区域大小?
我应该自己重新实现自定义滑块吗?
谢谢!
答案 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)
}