【问题标题】:CAShapeLayer fill color swift 4 xcode 9 iOS 11 not working any idea?CAShapeLayer 填充颜色 swift 4 xcode 9 iOS 11 没有任何想法?
【发布时间】:2017-12-16 19:30:01
【问题描述】:

我一直在尝试使用 Swift 4 在 XCode 9 iOS 11 中为CAShapeLayer 填充颜色,但没有成功。

let circlePath = UIBezierPath(arcCenter: CGPoint(x: 0, y: 0), radius: 12, startAngle: 0.0, endAngle: CGFloat(Double.pi * 2.0), clockwise: true)
let circleLayer = CAShapeLayer()
circleLayer.path = circlePath.cgPath
circleLayer.fillColor = UIColor.red.cgColor
circleLayer.strokeColor = UIColor.white.cgColor
circleLayer.lineWidth = 1.5

【问题讨论】:

  • 首先,检查您是否将其正确添加到视图层。其次,检查您添加它的视图的frame(例如,使用视图调试器等)。顺便说一句,使用.zero 的中心然后从 0 到 2π 有点奇怪(因为大概该圆的四分之三不会在您添加它的视图的框架内)。同样不相关,我建议将endAngle 简化为CGFloat.pi * 2.pi * 2

标签: ios swift ios11 swift4 cashapelayer


【解决方案1】:

也许,您忘记设置框架了。例如:

circleLayer.frame = CGRect(x: 6, y: 6, width: 12, height: 12)

【讨论】:

  • 我怀疑你的意思是xy 的值是12(半径)或12.75(半径加上线宽的一半)或13 或类似的东西。您应该相应地更改widthheight。 (就我个人而言,我讨厌将层与原点一起移动,所以我会亲自移动UIBezierPathcenter 而不是CALayerorigin,但这也有效。)所有这些说,这不会影响圈子不出现。按照他的方式,你至少应该看到圆的一个象限。我怀疑还有其他问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-04
  • 1970-01-01
  • 1970-01-01
  • 2018-07-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多