ios - Swift shapelayer 设置填充颜色不起作用

标签 ios swift calayer cashapelayer quartz-core

我尝试用平行四边形路径填充 shapelayer。

let shapeLayer = CAShapeLayer()

    shapeLayer.lineWidth = 2.0
    shapeLayer.fillColor = UIColor.blue.cgColor
    shapeLayer.strokeColor = UIColor.black.cgColor
    let path = CGMutablePath()
    let points: [CGPoint] = [CGPoint(x: 10, y: 10), CGPoint(x: 100, y: 20), CGPoint(x: 100, y: 100), CGPoint(x:10, y: 80)]
    for (index, point) in points.enumerated() {
        path.move(to: point)
        var line: CGPoint = .zero
        if index == points.count - 1 {
            line = points[0]
        } else {
            line = points[index+1]
        }
        path.addLine(to: line)
    }

    shapeLayer.path = path

   layer.addSublayer(shapeLayer)

但是在屏幕上我只看到那个平行四边形的黑色边框。我之前使用过填充 shapelayers,它适用于更困难的路径。谁能建议我修复此错误。

最佳答案

你不需要每次都移动点。

    // ...

    path.move(to: points[0])

    for index in 0..<points.count {
        var point: CGPoint = .zero
        if index == points.count - 1 {
            point = points[0]
        } else {
            point = points[index+1]
        }
        path.addLine(to: point)
    }

    //...

关于ios - Swift shapelayer 设置填充颜色不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44646677/

相关文章:

ios - 使用 AVPlayer 播放本地 GIF

ios - 不同版本的 iOS 上的 EXC_BREAKPOINT

swift - 键盘扩展中的 UICollectionview

avfoundation - AVPlayerLayer 作为 SCNMaterial 未呈现,音频播放正常

objective-c - 将 CALayer 渲染为 PDF 输出时保持矢量图形

ios - 核心数据迁移而不将所有数据读入内存?

c# - 从导航堆栈中删除时从 UIViewController 中删除数据

ios - 为什么我的 UIImageView 替换了第二个?

objective-c - CALayer是否保留CGColor对象?

iOS 测试失败 - "No Implementation for…"