Я пытаюсь создать оверлей поверх GLKView
(фактически EAGLView
).Я знаю о влиянии на производительность, но в моей ситуации это не проблема, поскольку сцена приостанавливается в фоновом режиме, она просто должна оставаться видимой.
Я создал пользовательский UIView с именем ReaderView
чей единственный пользовательский код:
-(CALayer*)layer {
CATextLayer *textLayer = [[CATextLayer alloc] init];
// Layer settings.
[textLayer setCornerRadius:5.0f];
// Text settings.
[textLayer setFont:CGFontCreateWithFontName((CFStringRef)READING_FONT)];
[textLayer setFontSize:READING_FONT_SIZE];
[textLayer setAlignmentMode:kCAAlignmentJustified];
[textLayer setWrapped:YES];
return textLayer;
}
Затем я вызвал следующее в GLKViewController
:
-(void)onMyCustomEvent {
if (_readerView==nil) {
CGRect frame = [[self view] frame];
frame.size.width *= 0.8f;
frame.size.height *= 0.8f;
_readerView=[[ReaderView alloc] initWithFrame:frame];
[_readerView setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
}
[_readerView setText:[node content]];
[[self view] addSubview:_readerView];
}
NSLog
доказал, что этот метод вызываетсяпредставление читателя инициализируется.Однако ничего не отображается поверх GLKView
.
Есть идеи, почему это не работает?