Вы уверены, что OpenGL?
Я считаю, что OpenGL будет невозможно использовать над обычными видами.
Вы можете добавить пользовательский вид (наследовать от UIView) выше всех других видов и нарисовать все, что захотите, в этом представлении.
Этот вид должен иметь прозрачный цвет фона.
Кроме того, если вы хотите взаимодействовать с другими видами (нажмите кнопки, отредактируйте текстовые представления, прокрутите и т. Д.), Вам нужно будет реализовать метод hitTest в своем пользовательском представлении, чтобы передать событие касания в представления, которые находятся под этим ...
EDIT: Не вступайте в хит-тест. Просто снимите взаимодействие пользователя Enabled в XIB ...
EDIT: Пример кода:
@interface TransparentDrawingView : UIView {
CGPoint fromPoint;
CGPoint toPoint;
}
- (void)drawLineFrom:(CGPoint)from to:(CGPoint)to;
@end
@implementation TransparentDrawingView
- (void)initObject {
// Initialization code
[super setBackgroundColor:[UIColor clearColor]];
}
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
// Initialization code
[self initObject];
}
return self;
}
- (id)initWithCoder:(NSCoder *)aCoder {
if (self = [super initWithCoder:aCoder]) {
// Initialization code
[self initObject];
}
return self;
}
- (void)drawRect:(CGRect)rect {
// Drawing code
// Draw a line from 'fromPoint' to 'toPoint'
}
- (void)drawLineFrom:(CGPoint)from to:(CGPoint)to {
fromPoint = from;
toPoint = to;
// Refresh
[self setNeedsDisplay];
}
@end
Зачем вам OpenGL просто рисовать линию? Почему бы просто не использовать UIView? –
и как я могу нарисовать линию в UIViewController над изображением, например? – ghiboz