CALayer の最大サイズはありますか?
rootLayer とサブレイヤーをアイテムとして含む長い垂直リストがあり、rootLayer の高さが 16k を超えた後、エラーが発生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: surface WIDTH x HEIGHT is too large」と表示されます。