[英]Detect -snapshot call in -glkView:drawInRect: using GLKit
我在尋找-glkView:drawInRect:
可以檢測到它正在為-snapshot
方法繪制,而不是正常的視圖向用戶顯示的方式。 這樣我就可以檢測到如何正確繪制視圖。 我嘗試檢測視圖的差異是將傳遞給-glkView:drawInRect:
的視圖與GLKViewController的視圖進行比較:
// standard function GLKViewController
- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect
{
if ((self.view != view)) NSLog(@"drawing for snapshot");
// draw code ...
}
但是沒有運氣。 我正在考慮的另一種方法是創建時,將設置一個布爾變量-snapshot
被調用, -glkView:drawInRect:
它已經引起了快照特定視圖后會重置。 但這似乎很臟,並且可能會導致多個錯誤,尤其是在以60 fps的速度繪制時。
您是否提供任何建議或示例來檢測-glkView:drawInRect:
是否正在繪制-snapshot
方法?
提前致謝
子類GLKView
並將snapshot
方法覆蓋為類似以下內容:
- (UIImage *)snapshot
{
self.isDrawingSnapshot = YES;
UIImage *result = [super snapshot];
self.isDrawingSnapshot = NO;
return result;
}
除了屬性,您還可以使用自定義委托來通知您的視圖控制器或發布NSNotification
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.