如何快速创建滑块的自定义拇指

时间:2019-11-09 08:39:27

标签: swift uicontrol

我通过子类化UIControl来创建自己的自定义滑块,然后创建了自定义拇指,但是当我尝试握住拇指进行移动时,问题就来了,我必须将拇指握在特定位置才能更改滑块值我已经在滑动器在模拟器中的外观以及如何在调试视图层次结构中放置了两幅图像,正如从第一幅图像中可以看到的那样,我的拇指在滑动器板的外面,这是我想要的,但是我只能移动在视图层次结构中显示的不是我想要的部分,如何使拇指在滑块边界之外可触摸,并且我想提一下,我将滑块的宽度设置为20
enter image description here

enter image description here

我的Thumb层代码

class RangeSliderThumbLayer: CALayer {
    override func draw(in ctx: CGContext) {
            let thumbFrame = bounds.insetBy(dx: 4.0, dy: 4.0)
            let thumbPath = UIBezierPath(roundedRect: thumbFrame, cornerRadius: 0)

            // Fill - with a subtle shadow
            let shadowColor = UIColor.clear.cgColor
            ctx.setFillColor(UIColor.gray.cgColor)
            ctx.addPath(thumbPath.cgPath)
            ctx.fillPath()
            ctx.setStrokeColor(shadowColor)
            ctx.setLineWidth(0.5)
            ctx.addPath(thumbPath.cgPath)
            ctx.strokePath()
    }
}

在我的RangeSlider类中,设置图层

 rangeSliderThumbLayer = CGRect(x:thumbCenter, y: -(thumbImage.size.height * 2 ) / 3,
                       width: thumbImage.size.width, height: thumbImage.size.height)
rangeSliderThumbLayer.setNeedsDisplay()

0 个答案:

没有答案