ImageView 不显示阴影

Vib*_*oti 1 iphone objective-c shadow uiimageview

我试图以UIImageview以下方式在 an上添加阴影:

imageView.layer.shadowColor = [UIColor purpleColor].CGColor;
imageView.layer.shadowOffset = CGSizeMake(0, 1);
imageView.layer.shadowOpacity = 1;
imageView.layer.shadowRadius = 1.0;
imageView.clipsToBounds = NO;
Run Code Online (Sandbox Code Playgroud)

但是当UIImageview没有图像或背景颜色为清晰的颜色时,阴影不显示。我什至尝试放置透明图像,但它仍然没有显示。请帮忙。

Mik*_*ler 5

如果图像视图不包含任何内容,则没有任何阴影。在这种情况下你可以做的是定义一个明确的阴影矩形,而不是使用图像内容:

CGPathRef shadowPath = CGPathCreateWithRect(imageView.bounds, NULL);
imageView.layer.shadowPath = shadowPath;
CGPathRelease(shadowPath);
Run Code Online (Sandbox Code Playgroud)

事实上,当涉及到一般添加阴影时,这种技术可以提供显着的性能提升,因为不需要根据图层内容动态计算阴影。例如,您可以使用此技术来提高滚动性能。Apple 在他们的 WWDC 视频之一中提到了这一点。