我想像在 eBay 应用程序中一样向 UIView 添加过滤器。我使用 GPUImage 框架。我创建了一个类,继承自 UIView 并将 UIButton 和 UIActivityIndicatorView 添加到此视图。我想捕捉重绘时刻并为新图像/纹理应用过滤器。例如,当我点击按钮时,按钮变得高亮。
@interface MyCALayer : CALayer
@end
@implementation MyCALayer
- (void)renderInContext:(CGContextRef)ctx
{
[super renderInContext:ctx];
NSLog(@"%@", @"CALayer redraw");
}
@end
@implementation MyView
+ (Class)layerClass
{
return [MyCALayer class];
}
- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];
NSLog(@"%@", @"UIView redraw");
}
@end
UIView 和 CALayer 仅重绘 1 次。当我单击按钮时,NSLog 不会调用。更新活动指示器日志也不会调用。如何捕捉视图中不断变化的内容?有什么方法可以从 UIView 获取显示在屏幕上的图像/纹理,而无需在上下文中重绘此视图?