#4 自選隨機繪製花卉圖疊疊樂

主題:
繪製梅花,7組花色/大小/位置,由random隨機配置
繪製小花,2組花色/大小/位置,由random隨機配置
繪製蜻蜓,大小/位置,由random隨機配置

二個頁面(主頁面選單:設定繪製內容及時間及顯示結果頁面)

練習 UIBezierPath() , CAShapeLayer() , CAGradientLayer(), Timer , random
練習頁面間的資料傳遞:多個 segue 共用一個 IBSegueAction+是否觸發 segue 切換頁面 shouldPerformSegue
運用 function , class , struct , enum , array , if , switch , guard

選單
預設
自訂

問題一:參考 CAGradientLayer 漸層,發現無法由圓心向外漸層
與是試作利用繪製多層圓形,每層顏色微調加上陰影,呈現了所想的效果。

//搭陰影做漸層效果
for i in 1...newLayerInfo.qty {
flowerPath.removeAllPoints()
newLayerInfo.radius = 40 - i

newLayerInfo.fillColor = UIColor(red: CGFloat(flowerColors[colorIndex].r - (i * 5)) / 255, green: CGFloat(flowerColors[colorIndex].g - (i * 5)) / 255, blue: CGFloat(flowerColors[colorIndex].b - (i * 5)) / 255, alpha: CGFloat(flowerColors[colorIndex].a))

newLayerInfo.strokeColor = newLayerInfo.fillColor
newLayerInfo.shadowColor = newLayerInfo.fillColor

flowerPath.addArc(withCenter: flowerView.center, radius: CGFloat(newLayerInfo.radius), startAngle: 0, endAngle: .pi / 180 * 360, clockwise: true)

flowerView.addSubview(makeShapeLayerUIView(viewX: 0, viewY: 0, viewWidth: Int(flowerView.frame.width), viewHeight: Int(flowerView.frame.height), path: flowerPath, LayerInfo: newLayerInfo))
}

問題二: if 改成 guard 出現錯誤如下

根據錯誤訊息,原來是要用 guard case。感謝Fix的幫助學習。

GitHub:

--

--