我繼續在我的斯威夫特作業我已盯着here(前堆棧溢出問題)。但我現在正面臨一個新問題。最後,我能夠利用我的河流像點只是使用UIBezierPath
和CAShapeLayer
使用下面的代碼(用@njuri幫助):如何獨立繪製到UIView中的CAShapeLayer?
import UIKit
let beginPoint = UIBezierPath(ovalInRect: CGRectMake(130, 360, 20, 20))
let endPoint = UIBezierPath(ovalInRect: CGRectMake(260, 57, 20, 20))
let drawingView = UIView.init(frame: CGRect(x: 0, y: 0, width: 640, height: 400))
drawingView.addSubview(UIImageView(image: UIImage(named: "River.jpeg")))
let drawingLayer = CAShapeLayer()
drawingLayer.path = beginPoint.CGPath
drawingLayer.strokeColor = UIColor.greenColor().CGColor
drawingLayer.lineWidth = 3
drawingLayer.fillColor = UIColor.whiteColor().CGColor
drawingView.layer.addSublayer(drawingLayer)
let drawingLayer2 = CAShapeLayer()
drawingLayer2.path = endPoint.CGPath
drawingLayer.strokeColor = UIColor.redColor().CGColor
drawingLayer.lineWidth = 3
drawingLayer.fillColor = UIColor.whiteColor().CGColor
drawingView.layer.addSublayer(drawingLayer2)
這裏的問題是,結果是不我的期望是如何,正如你可以看到下面我有兩個點,但其中一個是全黑(而不是有一個紅色邊框和白色填充),另一個是綠色邊界,並有一個白色填充(正如我想要的是)
但是,爲什麼發生這種情況?根據該法,我有兩個獨立的CAShapeLayer
這兒,它有不同的屬性和我分別增加了UIView
當您複製和粘貼一些重複的代碼,你會忘記重新命名的變量,會出現因爲副本變量沒有錯誤這是一個常見的問題在此範圍內可用。有一個輔助函數可以讓你的代碼更安全,更簡單。 –