2016-06-02 19 views
0

Ich bekomme den folgenden Fehler beim Versuch, eine grüne Linie in meinem ViewDidLoad() zu zeichnen. Es ist wichtig, dass ich es hier mache, weil es zwischen neuen Etiketten liegt, wenn sie abgelegt werden. Der Fehler ist:Wie zeichne ich eine Zeile in iOS swift in der Funktion viewDidLoad()?

<Error>: CGContextSetLineWidth: invalid context 0x0. If you want to see 
the backtrace, 
please set CG_CONTEXT_SHOW_BACKTRACE environmental variable. 

Der Code zum Zeichnen der Linie (n) unter:

let context = UIGraphicsGetCurrentContext() 
         CGContextSetLineWidth(context, 3.0) 
         CGContextSetStrokeColorWithColor(context,self.hexStringToUIColor("#008500").CGColor) 
         CGContextMoveToPoint(context, 0,CGFloat(top+40)) 
         CGContextAddLineToPoint(context, CGFloat(screenWidth*2), CGFloat(top+40)) 
         CGContextStrokePath(context) 
+1

Das ist sicherlich der falsche Ort, um die Linie zu zeichnen. Überdenken Sie diese Annahme/Aussage. – luk2302

+0

Wie meinst du das? Oh und oben ist die Variable, die den Abstand von der letzten Beschriftung darstellt. –

+0

Ja, Sie können entweder drawRect in Ihrer Ansicht implementieren, eine 3pt hohe, farbige Ansicht zu Ihrem Layout hinzufügen oder einen CAShapeLayer mit dem entsprechenden CGPathRef zur Ebene Ihrer Ansicht hinzufügen. Es gibt vielleicht mehr Möglichkeiten, aber es wird nie eine von ihnen sein, es in ViewDidLoad zu tun. –

Antwort

2

Aus den Kommentaren, es klingt wie Sie nur eine Zeile zu Ihrer Benutzeroberfläche programmatisch hinzufügen möchten. Verwenden Sie dazu einfach UIView, um die Zeile zu erstellen. Stellen Sie backgroundColor auf die gewünschte Farbe ein. Die Höhe, die Sie für die frame angeben, ist die Dicke der Linie.

// Add a green line with thickness 1, width 200 at location (50, 100) 
let line = UIView(frame: CGRect(x: 50, y: 100, width: 200, height: 1)) 
line.backgroundColor = UIColor.greenColor() 
self.view.addSubview(line)