У меня есть экземпляр подкласса UIImageView, который имеет несколько подслоев изображений.
Я хочу динамически добавлять / удалять тени для этого вида.
Следующий код прекрасно работает (реализация подкласса 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];
}
}
Спасибо