2011-02-18 105 views
0

我有UIImageView子类实例有多个图像子层。(iphone)我在图像后面出现黑色矩形,为什么?

我想动态地添加/删除阴影到这个视图。

以下代码对于具有一个子图层的imageView可以正常工作(imageView子类的实现),但对于具有多个子图层的imageView显示黑色矩形而不是阴影。

(实际上,对于一个层图像,代码似乎继续,如果多次运行以前的影子的顶部添加阴影,但是这是一个小问题)

- (void) drawLayer: (CALayer*) layer inContext: (CGContextRef)context 
{ 
    SYSLOG(LOG_DEBUG, "in drawLayer, isShadowed: %d", isShadowed); 

    if(isShadowed == true) 
    { 
     CGContextSaveGState(context); 
     CGContextClearRect(context, self.bounds); 
     CGContextSetShadow(context, CGSizeMake(10, 10), 3); 
     CGContextBeginTransparencyLayer(context, NULL); 
     [layer renderInContext:context]; 
     CGContextEndTransparencyLayer(context); 
     CGContextRestoreGState(context); 
    } 
    else 
    { 
     [layer renderInContext:context]; 
    } 
} 

谢谢

回答

0

如果您的图层的opaque不是否,CGContextClearRect绘制黑色而不是在图层中打孔透明孔。我猜这就是问题所在。

相关问题