2016-06-02 7 views
0

Я продолжаю получать следующую ошибку при попытке нарисовать зеленую линию в моем представленииDidLoad(). Очень важно, чтобы я делал это здесь, потому что он находится между новыми ярлыками, когда они помещаются вниз. Ошибка:Как сделать строку в iOS swift в функции viewDidLoad()?

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

код для рисования линии (ы) ниже:

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

Это, безусловно, неправильное место, чтобы нарисовать линию. Переосмыслить это предположение/утверждение. – luk2302

+0

Как вы это понимаете? Oh и top - это переменная, представляющая расстояние от последней метки. –

+0

Да, вы можете либо реализовать drawRect в своем представлении, либо добавить цветное представление 3pt к вашему макету, либо добавить CAShapeLayer с соответствующим CGPathRef на уровень вашего представления. Есть несколько способов, но делать это в viewDidLoad никогда не будет одним из них. –

ответ

2

От комментариев это звучит, как вы просто хотите, чтобы добавить его в свой пользовательский интерфейс программно. Для этого просто используйте UIView для создания строки. Установите его backgroundColor на нужный вам цвет. Высота, указанная для frame, будет толщина линии.

// 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) 

 Смежные вопросы

  • Нет связанных вопросов^_^