[英]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.