2017-06-20 40 views
0

我嘗試用平行四邊形路徑填充shapelayer。Swift 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工作,它適用於更困難的路徑。任何人都可以建議我解決這個錯誤。

回答

1

你不需要每次都移動點。

// ... 

    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) 
    } 

    //... 
+0

哦,謝謝,太棒了,它的工作原理。但爲什麼當我移動點時會出現錯誤? – juramoshkov

+0

'指定的點成爲新子路徑的起點。目前的觀點是設置在這個開始點上。「我認爲蘋果文檔中的句子可能就是關鍵。 – ovo