小编neg*_*siu的帖子

停止绘制CATiledLayer

有可能停止CATiledLayer绘制(drawLayer:inContext)?它以异步方式绘制,当我尝试释放使用的CATiledLayerCGPDFDocumentRef时,应用程序崩溃(EXC_BAD_ACCESS).

这是我的观点:

@implementation TiledPDFView

- (id)initWithFrame:(CGRect)frame andScale:(CGFloat)scale{
    if ((self = [super initWithFrame:frame])) {

        CATiledLayer *tiledLayer = (CATiledLayer *)[self layer];
        tiledLayer.levelsOfDetail = 4;
        tiledLayer.levelsOfDetailBias = 4;
        tiledLayer.tileSize = CGSizeMake(512.0, 512.0);
        myScale = scale;
    }
    return self;
}

// Set the layer's class to be CATiledLayer.
+ (Class)layerClass {
    return [CATiledLayer class];
}

- (void)stopDrawing{
    CATiledLayer *tiledLayer = (CATiledLayer *)[self layer];
    [tiledLayer removeFromSuperlayer];
    tiledLayer.delegate = nil;
}
// Set the CGPDFPageRef for the view.
- (void)setPage:(CGPDFPageRef)newPage
{
    CGPDFPageRelease(self->pdfPage); …
Run Code Online (Sandbox Code Playgroud)

memory-management core-animation core-graphics objective-c

10
推荐指数
1
解决办法
6830
查看次数