2016-08-15 3 views
3

私はこのように通常の直線の代わりに - - - - - - - - のように迅速に破線を作る方法を知りたいです:---------------- 、私は複数の行を作ることができることを知っているが、それは私はちょうど1行に書くことができますので、多くの不必要なコードが必要になります。 BtwはCoreGraphicsになければなりません。迅速に破線を作る方法は?

+0

現在の行作成コードを表示できますか? – luk2302

+1

Lookup CGContextSetLineDash。 –

答えて

9

Swiftを使用する以外は、Objective-Cと同じ方法で破線を作成します。ここで

let path = UIBezierPath() 

let p0 = CGPointMake(CGRectGetMinX(self.bounds), 
      CGRectGetMidY(self.bounds)) 
path.moveToPoint(p0) 

let p1 = CGPointMake(CGRectGetMaxX(self.bounds), 
      CGRectGetMidY(self.bounds)) 
path.addLineToPoint(p1) 

let dashes: [ CGFloat ] = [ 16.0, 32.0 ] 
path.setLineDash(dashes, count: dashes.count, phase: 0.0) 

path.lineWidth = 8.0 
path.lineCapStyle = .Butt 
UIColor.magentaColor().set() 
path.stroke() 

はUIBezierPathを使用して点線を描画する方法である:

:ここ

let path = UIBezierPath() 

let p0 = CGPointMake(CGRectGetMinX(self.bounds), 
      CGRectGetMidY(self.bounds)) 
path.moveToPoint(p0) 

let p1 = CGPointMake(CGRectGetMaxX(self.bounds), 
      CGRectGetMidY(self.bounds)) 
path.addLineToPoint(p1) 

let dashes: [ CGFloat ] = [ 0.0, 16.0 ] 
path.setLineDash(dashes, count: dashes.count, phase: 0.0) 
path.lineWidth = 8.0 
path.lineCapStyle = .Round 
UIColor.magentaColor().set() 
path.stroke() 

はCGContextを使用して破線を描画する方法である。ここ

は、あなたがそれをUIBezierPathを使用して行う方法です

let context: CGContext = UIGraphicsGetCurrentContext()! 

let p0 = CGPointMake(CGRectGetMinX(self.bounds), CGRectGetMidY(self.bounds)) 
CGContextMoveToPoint(context, p0.x, p0.y) 

let p1 = CGPointMake(CGRectGetMaxX(self.bounds), CGRectGetMidY(self.bounds)) 
CGContextAddLineToPoint(context, p1.x, p1.y) 

let dashes: [ CGFloat ] = [ 16.0, 32.0 ] 
CGContextSetLineDash(context, 0.0, dashes, dashes.count) 

CGContextSetLineWidth(context, 8.0) 
CGContextSetLineCap(context, .Butt) 
UIColor.blueColor().set() 
CGContextStrokePath(context) 
+0

2つのボタンをパラメータとしてバインドしているときにラインが来ない、2つのUIボタンの間に点線を描画する方法。ここに私のコードは、パス= UIBezierPath()しましょう がある(P1 = CGPointMakeせP0 = CGPointMake(CGRectGetMinX(self.button1.bounds)、 CGRectGetMidY(self.button1.bounds)) path.moveToPoint(P0) をしましょうCGRectGetMaxX(self.button2.bounds)、 CGRectGetMidY(self.button2.bounds) path.addLineToPoint(p1) –

+0

私にいくつかの解決策を教えてください –

関連する問題