2012-01-18 5 views
0

GLKView(事実上はEAGLView)の上にオーバーレイを作成しようとしています。私はパフォーマンスのインパクトを認識していますが、私の状況では問題はありません。バックグラウンドでシーンが一時停止しているので、単に見えるだけです。iOS:EAGLView/GLKViewの上にオーバレイを作成する

私はUIViewのが唯一のカスタムコード以下れるReaderViewと呼ばれるカスタム作成しました:私は、その後GLKViewControllerに次のように呼ばれてきました

-(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; 
} 

を:

-(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の上部に何も表示されません。

これはなぜ機能しないのでしょうか?あなたがサブビューとして追加しているので

答えて

0

、あなたはこのように、親ビューからのフレームプロパティの代わりにboundsプロパティを使用する必要があります。

CGRect frame = self.view.bounds; 

をそれはそれを修正しない場合は、設定してみてください問題はこのように、不足している内容ではないことを保証するために顕著なものに_readerViewの背景色:それのどれもがそれを解決しない場合は、最後に

_readerView.backgroundColor = [UIColor redColor]; 

、多分直接EAGLビューにサブビューをされる追加問題。その場合は、コンテナビューを作成し、代わりにEAGLビューと_readerViewを追加してください。

関連する問題