Swift自定義UISlider的圓點,UISlider手勢與側滑返回手勢衝突
阿新 • • 發佈:2018-12-15
import UIKit class CustomSlider: UISlider { init() { super.init(frame: CGRect()) self.minimumValue = 0 self.maximumValue = 100 self.value = 0 self.minimumTrackTintColor = .orange self.maximumTrackTintColor = .green //自定義圓點圖示 self.setThumbImage(R.image.icon_slider(), for: .normal) } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } //修改slider的位置和大小 override func trackRect(forBounds bounds: CGRect) -> CGRect { return CGRect(x: 0, y: 14, width: self.frame.size.width, height: 6) } //修改圓點圖示的位置和觸控區域的大小 override func thumbRect(forBounds bounds: CGRect, trackRect rect: CGRect, value: Float) -> CGRect { var trect = rect trect.origin.x -= 5 trect.size.width += 10 var srect = super.thumbRect(forBounds: bounds, trackRect: trect, value: value) srect.origin.y += 2 return srect } //處理手勢衝突 override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool { return false } }