我想作一圆 UIImageView
,和它的工作。下面是我用来使它的方法:
[self.pic.layer setMasksToBounds:YES];
[self.pic.layer setCornerRadius:50.0];
我想添加一些阴影到 UIImageView
。下面的代码不会添加一些阴影到我图像视图,但是,图像视图更改回方形。有人可以给我一些指针来解决这个问题吗?下面是我使用添加阴影的代码:
self.pic.layer.shadowColor = [UIColor purpleColor].CGColor;
self.pic.layer.shadowOffset = CGSizeMake(0, 1);
self.pic.layer.shadowOpacity = 1;
self.pic.layer.shadowRadius = 1.0;
self.pic.clipsToBounds = NO;
解决方法 1:
使用 CALayer
的 shadowPath
属性和添加 UIBezierPath
与圆角矩形
self.pic.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:self.pic.frame cornerRadius:50.0].CGPath;
编辑
Square-ish 图像视图此技术不能直接因为,正如你所说,图像视图可以追溯到广场。原因: 您设置 clipsToBounds = NO
显示阴影,移除为圆角半径,剪切位置 imageView
是子视图的 container
。
解决方法:
在容器的视图中添加您 imageview,然后到此容器应用层阴影。以下是我试过的代码。
[self.imageView.layer setCornerRadius:60.0];
[self.imageView.layer setMasksToBounds:YES];
self.imageView.clipsToBounds = YES;
self.container.backgroundColor = [UIColor clearColor];
self.container.layer.shadowColor = [UIColor blackColor].CGColor;
self.container.layer.shadowOffset = CGSizeMake(5,15);
self.container.layer.shadowOpacity = 0.5;
self.container.layer.shadowRadius = 2.0;
self.container.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:self.container.bounds cornerRadius:100.0].CGPath;
由此产生的效果是在屏幕快照中所示
希望有所帮助 !