Ios 如何使用UIView绘制线?
我可以使用CGContext绘制线条。如何使用UIView绘制具有相同坐标的直线?我想在将来移动线,所以我需要使用UIViewIos 如何使用UIView绘制线?,ios,swift,Ios,Swift,我可以使用CGContext绘制线条。如何使用UIView绘制具有相同坐标的直线?我想在将来移动线,所以我需要使用UIView func DrawLine() { UIGraphicsBeginImageContext(self.view.frame.size) imageView.image?.draw(in: CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height))
func DrawLine()
{
UIGraphicsBeginImageContext(self.view.frame.size)
imageView.image?.draw(in: CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height))
let context = UIGraphicsGetCurrentContext()
let lineWidth : CGFloat = 5
context?.move(to: CGPoint(x: 100, y: 100))
context?.addLine(to: CGPoint(x: self.view.frame.width - 100, y: 100))
context?.setBlendMode(CGBlendMode.normal)
context?.setLineCap(CGLineCap.round)
context?.setLineWidth(lineWidth)
context?.setStrokeColor(UIColor(red: 0, green: 0, blue: 0, alpha: 1.0).cgColor)
context?.strokePath()
context?.move(to: CGPoint(x: self.view.frame.width/2, y: 100))
context?.addLine(to: CGPoint(x: self.view.frame.width/2, y: 700))
context?.strokePath()
imageView.image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
}
override func viewDidLoad()
{
super.viewDidLoad()
DrawLine()
}
CAShapeLayer
添加到UIView
let shapeLayer = CAShapeLayer()
view.layer.addSublayer(shapeLayer)
shapeLayer.path = // some CGPath you create
请参阅:了解如何使用线条绘制CGPath。您可以在覆盖的
func draw(\urect:CGRect)中绘制该图形。
我想移动线条。我用触摸屏。这是代码:line.frame.origin=CGPoint(x:line.frame.origin.x,y:location.y)我的线相对于手指的位置移动了大约100个像素。为什么会发生这种情况?请在新问题中添加相关代码(格式正确)。最主要的是——显示获取接触点坐标的代码。从什么角度看?如果不是正在绘制的视图,则需要平移坐标。路径坐标相对于它所在的视图