Ios 画一条线连接两个圆
我正在构建一个定制的用户界面输入,让用户通过一条线连接两个圆圈 这就是原型的样子Ios 画一条线连接两个圆,ios,swift,uiview,quartz-2d,Ios,Swift,Uiview,Quartz 2d,我正在构建一个定制的用户界面输入,让用户通过一条线连接两个圆圈 这就是原型的样子 我想知道我怎样才能画出这条直线?你的观点?斯皮特基特?或者什么?您应该使用UIBezierPath()和CAShapeLayer() 此函数应实现以下功能: 您应该使用UIBezierPath()和CAShapeLayer() 此函数应实现以下功能: 无缓存版本: class LineView:UIView { var startP: CGPoint? var endP: CGPoint?
我想知道我怎样才能画出这条直线?你的观点?斯皮特基特?或者什么?您应该使用
UIBezierPath()
和CAShapeLayer()
此函数应实现以下功能:
您应该使用
UIBezierPath()
和CAShapeLayer()
此函数应实现以下功能:
无缓存版本:
class LineView:UIView {
var startP: CGPoint?
var endP: CGPoint?
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
let touch = touches.first
let location = touch?.locationInView(self);
//do some matching here...
self.startP = location
}
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
let touch = touches.first
let location = touch?.locationInView(self);
self.endP = location
self.setNeedsDisplay()
}
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
let touch = touches.first
let location = touch?.locationInView(self);
//do some matching here...
self.endP = location
self.setNeedsDisplay()
}
override func drawRect(rect: CGRect) {
let context = UIGraphicsGetCurrentContext()
if let start = self.startP {
if let end = self.endP {
CGContextMoveToPoint(context, start.x, start.y)
CGContextAddLineToPoint(context, end.x, end.y)
CGContextSetStrokeColorWithColor(context, UIColor.blueColor().CGColor)
CGContextStrokePath(context)
}
}
}
}
类线视图:UIView{
var startP:CGPoint?
var endP:CGPoint?
覆盖功能触摸开始(触摸:设置,withEvent事件:UIEvent?){
让我们先接触
让位置=触摸?.locationInView(自);
//在这里做一些匹配。。。
self.startP=位置
}
覆盖功能触摸移动(触摸:设置,带事件:UIEvent?){
让我们先接触
让位置=触摸?.locationInView(自);
self.endP=位置
self.setNeedsDisplay()
}
覆盖func touchesEnded(触摸:设置,withEvent事件:UIEvent?){
让我们先接触
让位置=触摸?.locationInView(自);
//在这里做一些匹配。。。
self.endP=位置
self.setNeedsDisplay()
}
重写func drawRect(rect:CGRect){
let context=UIGraphicsGetCurrentContext()
如果let start=self.startP{
如果let end=self.endP{
CGContextMoveToPoint(上下文,start.x,start.y)
CGContextAddLineToPoint(上下文,end.x,end.y)
CGContextSetStrokeColorWithColor(上下文,UIColor.blueColor().CGColor)
CGContextStrokePath(上下文)
}
}
}
}
无缓存版本:
class LineView:UIView {
var startP: CGPoint?
var endP: CGPoint?
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
let touch = touches.first
let location = touch?.locationInView(self);
//do some matching here...
self.startP = location
}
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
let touch = touches.first
let location = touch?.locationInView(self);
self.endP = location
self.setNeedsDisplay()
}
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
let touch = touches.first
let location = touch?.locationInView(self);
//do some matching here...
self.endP = location
self.setNeedsDisplay()
}
override func drawRect(rect: CGRect) {
let context = UIGraphicsGetCurrentContext()
if let start = self.startP {
if let end = self.endP {
CGContextMoveToPoint(context, start.x, start.y)
CGContextAddLineToPoint(context, end.x, end.y)
CGContextSetStrokeColorWithColor(context, UIColor.blueColor().CGColor)
CGContextStrokePath(context)
}
}
}
}
类线视图:UIView{
var startP:CGPoint?
var endP:CGPoint?
覆盖功能触摸开始(触摸:设置,withEvent事件:UIEvent?){
让我们先接触
让位置=触摸?.locationInView(自);
//在这里做一些匹配。。。
self.startP=位置
}
覆盖功能触摸移动(触摸:设置,带事件:UIEvent?){
让我们先接触
让位置=触摸?.locationInView(自);
self.endP=位置
self.setNeedsDisplay()
}
覆盖func touchesEnded(触摸:设置,withEvent事件:UIEvent?){
让我们先接触
让位置=触摸?.locationInView(自);
//在这里做一些匹配。。。
self.endP=位置
self.setNeedsDisplay()
}
重写func drawRect(rect:CGRect){
let context=UIGraphicsGetCurrentContext()
如果let start=self.startP{
如果let end=self.endP{
CGContextMoveToPoint(上下文,start.x,start.y)
CGContextAddLineToPoint(上下文,end.x,end.y)
CGContextSetStrokeColorWithColor(上下文,UIColor.blueColor().CGColor)
CGContextStrokePath(上下文)
}
}
}
}
CAShapeLayer
将是最简单的。这里有一个问题如何使用UIBezierPath绘制线条:CAShapeLayer
将是最简单的。这里有一个问题如何使用UIBezierPath绘制线条:谢谢。此函数将在两点之间绘制静态线。我正在寻找从一个点到另一个点的交互线。所以,在从起点拖动到手指所在的当前点时,每帧都要绘制交互线?谢谢。此函数将在两点之间绘制静态线。我在寻找从一个点到另一个点的交互线。那么,在从起点拖动到手指所在的当前点时,每一帧都要绘制交互线?