是否有最大 CALayer 大小?
我有一个很长的垂直列表,其中 rootLayer 和子层作为项目,在 ~16k rootLayer 的高度之后,我CoreAnimation: surface WIDTH x HEIGHT is too large
在[rootLayer addSublayer:]
.
有没有办法制作一个非常大的图层?我尝试使用CATiledLayer
而不是CALayer
没有成功。
UPD
这是我的代码
static const NSSize itemSize = { 600, 100 };
#import "CAView.h"
@implementation CAView
- (id)initWithFrame:(NSRect)frameRect
{
self = [super initWithFrame:frameRect];
CATiledLayer* layer = [CATiledLayer layer];
layer.tileSize = itemSize;
self.layer = layer;
self.wantsLayer = YES;
return self;
}
- (void)addLayer
{
static CGFloat itemY = 0.0;
CATextLayer* layer = [CATextLayer layer];
layer.string = [NSString stringWithFormat:@"item %ld", [self.layer.sublayers count]];
layer.backgroundColor = [[NSColor redColor] CGColor];
layer.frame = NSMakeRect(0, itemY, itemSize.width, itemSize.height);
[self.layer addSublayer:layer];
itemY += itemSize.height;
NSRect frame = self.frame;
frame.size.height = itemY;
self.frame = frame;
}
@end
当视图尺寸变大时,最大 OpenGL 纹理尺寸会在我的视图中闪烁,并且控制台日志中的“CoreAnimation:表面宽度 x 高度太大”。