没有图像的自定义 UISlider
Posted
技术标签:
【中文标题】没有图像的自定义 UISlider【英文标题】:Custom UISlider without image 【发布时间】:2014-04-02 15:02:04 【问题描述】:我正在尝试在 ios7 中调整 UISlider
thumb 的大小,但我做不到。我知道可以使用setThumbImage
,但我不想使用任何图像。
setThumbImage:[UIImage imageNamed:@"sliderThumb.png"]
我想改变UISlider
thumb 的大小和颜色,没有图像。我可以这样做吗?
【问题讨论】:
查看这个帖子:***.com/questions/18983726/…,它可以帮助你;) 颜色更改成功,现在我唯一的问题是:如何调整拇指大小? :) 查看这个帖子:***.com/questions/11221966/…,如果不使用拇指图像无法调整大小,则可以使用透明图像,然后您可以调整拇指大小并根据需要更改颜色。 【参考方案1】:下面的 SWIFT 代码可让您轻松更改滑块滑块的大小和颜色:
override func viewDidLoad()
super.viewDidLoad()
self.updateSlider(self.mySlider, thumbSize: 16, color: UIColor.redColor())
func updateSlider(slider: UISlider, thumbSize: CGFloat, color: UIColor)
let thumbImage = createThumbImage(thumbSize, color: color)
slider.setThumbImage(thumbImage, forState: UIControlState.Normal)
slider.setThumbImage(thumbImage, forState: UIControlState.Highlighted)
func createThumbImage(size: CGFloat, color: UIColor) -> UIImage
let layerFrame = CGRectMake(0, 0, size, size)
let shapeLayer = CAShapeLayer()
shapeLayer.path = CGPathCreateWithEllipseInRect(layerFrame.insetBy(dx: 1, dy: 1), nil)
shapeLayer.fillColor = color.CGColor
shapeLayer.strokeColor = color.colorWithAlphaComponent(0.65).CGColor
let layer = CALayer.init()
layer.frame = layerFrame
layer.addSublayer(shapeLayer)
return self.imageFromLayer(layer)
func imageFromLayer(layer: CALayer) -> UIImage
UIGraphicsBeginImageContextWithOptions(layer.frame.size, false, UIScreen.mainScreen().scale)
layer.renderInContext(UIGraphicsGetCurrentContext()!)
let outputImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return outputImage
【讨论】:
以上是关于没有图像的自定义 UISlider的主要内容,如果未能解决你的问题,请参考以下文章