【发布时间】:2017-05-30 12:31:40
【问题描述】:
您好,我正在尝试用 swift 编写颜色选择器,看起来像这样。
但到目前为止,我做到了。
画圆很简单,代码如下……
fileprivate func setupScene(){
let circlePath: UIBezierPath = UIBezierPath(arcCenter: CGPoint(x: self.wheelView.frame.width/2, y: self.wheelView.frame.height/2), radius: CGFloat(self.wheelView.frame.height/2), startAngle: CGFloat(0), endAngle:CGFloat(Double.pi * 2), clockwise: true)
let shapeLayer = CAShapeLayer()
shapeLayer.path = circlePath.cgPath
//color inside circle
shapeLayer.fillColor = UIColor.clear.cgColor
//colored border of circle
shapeLayer.strokeColor = UIColor.purple.cgColor
//width size of border
shapeLayer.lineWidth = 10
wheelView.layer.addSublayer(shapeLayer)
}
@IBOutlet var wheelView: UIView!
但现在我不知道如何插入彩虹色......我尝试了 CAGradientLayer 但它不可见。有什么好的建议吗?
【问题讨论】:
-
原生不支持圆形渐变。这里有一些不错的选择:stackoverflow.com/questions/6905466/cgcontextdrawanglegradient
-
你想参考这个并弄清楚:stackoverflow.com/questions/11783114/…
-
感谢您的回复....我将 Dave C 的答案标记为已回答....这正是我想要的。
-
注意:对于“正确”的像素(或至少是点)解决方案,只需转到此处:stackoverflow.com/q/47610272/294884 确实,那里有一个链接到(非常旧,但工作)drop-在 github 上上课。
-
重要! .conic 终于在 12 中可用了,它现在是一行代码。
标签: ios swift gradient cagradientlayer