3

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」と表示されます。

4

0 に答える 0