ile bir çizgi çizme İlk kez BezierPaths kullanarak, bu işlevin gerçekten nasıl gerçekleştirileceğini düşünmek gerekiyor. Şu anda bezier yolu, ekranda çizim yapmak yerine görüntünün çerçevesi içinde hareket eder.UIBezierPath
Bunu yapmanın daha iyi bir yolu var mı?
func drawLineFromPoint(start : CGPoint, toPoint end:CGPoint, ofColor lineColor: UIColor, inView view:UIView) {
var maxWidth = abs(start.x - end.x)
var maxHeight = abs(start.y - end.y)
var contextSize : CGSize!
if maxWidth == 0 {
contextSize = CGSize(width: 1, height: maxHeight)
}else {
contextSize = CGSize(width: maxWidth, height: 1)
}
//design the path
UIGraphicsBeginImageContextWithOptions(contextSize, false, 0)
var path = UIBezierPath()
path.lineWidth = 1.0
lineColor.set()
//draw the path and make visible
path.moveToPoint(start)
path.addLineToPoint(end)
path.stroke()
//create image from path and add to subview
var image = UIGraphicsGetImageFromCurrentImageContext()
var imageView = UIImageView(image: image)
view.addSubview(imageView)
UIGraphicsEndImageContext()
}
diğer, daha doğrudan yaklaşımlar, 'CAShapeLayer kullanmak edilir Burada açıklandığı gibi 'veya custom' drawRect': http://stackoverflow.com/a/16846770/1271826 – Rob