[英]How do you only show a shadow outside of the fill of a UIView?
我有一个半透明填充和阴影的UIView。 由于填充是半透明的,我可以看到填充后面的阴影。
- (id)init
{
self = [super init];
if (self) {
self.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.8];
self.layer.shadowColor = [UIColor blackColor].CGColor;
self.layer.shadowOffset = CGSizeMake(0.0, 0.0);
self.layer.shadowOpacity = 0.5;
self.layer.shadowRadius = 2.0;
self.layer.cornerRadius = 3.0;
}
return self;
}
我不喜欢这种行为。 我无法在视图后面看到任何内容,因为填充的不透明度+阴影的不透明度> 100%。 我如何使它像CSS只在框的边框外绘制阴影?
.someStyle {
background: white;
opacity: 0.8;
box-shadow: 0 0 1em rgba(0,0,0,0.5);
}
我能够使用以下内容获得此效果:
...
someLayer.backgroundColor = [[UIColor greenColor] CGColor];
someLayer.shadowOpacity = 1.0;
someLayer.shadowOffset = CGSizeMake(10.0, 10.0);
someLayer.shadowColor = [[UIColor blackColor] CGColor];
someLayer.rasterizationScale = [[UIScreen mainScreen] scale];
someLayer.shouldRasterize = YES;
someLayer.opacity = 0.5;
[[self layer] addSublayer:someLayer];
self.layer.shadowOffset = CGSizeMake(0.0, 1.0); shadow only on the bottom
self.layer.shadowOffset = CGSizeMake(1.0, 0.0); shadow only on the right side
self.layer.shadowOffset = CGSizeMake(1.0, 1.0); shadow on the right and bottom sides.
阴影偏移正如它所说的那样。 将其设置为0,0将导致无阴影(如果您的视图不透明/半透明)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.