Я написал следующий код в моем методе loadView.Кварц, прямоугольник не отображается
//draw grid lines
CGContextRef context = UIGraphicsGetCurrentContext();
CGFloat color[4] = {.5,0.5,1.0,1.0};
CGContextSetLineWidth(context, 2.0);
CGContextSetStrokeColor(context, color);
CGRect rect = CGRectMake(100.0, 200.0, 50.0, 50.0);
CGContextAddRect(context, rect);
CGContextDrawPath(context, kCGPathFillStroke);
В моем приложении я добавил UIButtons и UILabels в UIView. Я хочу нарисовать прямоугольник вокруг UILabels.
У меня есть NSLogged с каждой стороны кода и получить следующие ошибки времени выполнения между двумя журналами.
<Error>: CGContextSetStrokeColor: invalid context 0x0
<Error>: CGContextAddRect: invalid context 0x0
<Error>: CGContextDrawPath: invalid context 0x0
т.д.
Как гарантировать, что я получаю правильный контекст? Я предположил вызов UIGraphicsGetCurrentContext(); было бы достаточно.
Хорошо, я поместил код в методе drawRect: (CGRect) в моем ViewController, который является подклассом UIView. Код в drawRect вызывается этими двумя строками CGRect rect = CGRectMake (100.0, 200.0, 50.0, 50.0); Он удалил ошибки, но все еще не заметил графики. [self.view drawRect: rect]; в методе loadView. –
Вы не вызываете 'drawRect:', iOS сделает это для вас, когда это уместно. Также вы уверены, что ваш ViewController является подклассом UIView, а не UIViewController? – gcamp