[英]uiview drop shadow transparency issue
我有一个带有“阴影”的UITextView
和一个位于它下面的tableView
。 我不知道的问题是如何使“阴影”透明,以便可以通过阴影看到下面的tableView
和细节(请参见下图)。 我尝试使用不透明度和半径,但是它不起作用。
这是我创建阴影的代码:
postDetails.layer.shadowColor = [[UIColor blackColor] CGColor];
postDetails.layer.shadowOffset = CGSizeMake(0.0f, 3.0f);
postDetails.layer.shadowRadius = 3.0f;
postDetails.layer.shadowOpacity = 0.3f;
postDetails.layer.masksToBounds = NO;
编辑:我认为也是导致该问题的是布局。 它是:
文本应该能够从阴影中看到,以使外观更清晰。
我能够做到这一点的方法是通过.shouldRasterize属性。
在代码中配置阴影:
UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRect:_viewShadow.bounds]; _viewShadow.layer.masksToBounds = NO; _viewShadow.layer.shadowColor = [UIColor blackColor].CGColor; _viewShadow.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); _viewShadow.layer.shadowOpacity = 1.0f; _viewShadow.layer.shadowPath = shadowPath.CGPath; _viewShadow.layer.shouldRasterize = true;
现在我们可以使阴影视图透明!
_viewShadow.alpha = 0.8f;
此时,您应该看到一个透明视图,其中投影仅显示在图像边界之外。
在对父层进行任何alpha混合之前,我基本上使用.shouldRasterize属性来渲染该层。
尝试使用以下代码:
postDetails.layer.shadowColor = [UIColor colorWithWhite:.5 alpha:1].CGColor;
postDetails.layer. shadowOpacity = 1.0f;
由于textView的阴影不会扩展到tableView的全长,因此无法解决您的问题。 取而代之的是,您可以将透明视图放在tableView的顶部。 在编辑期间添加具有背景透明背景色的临时视图,并在编辑完成后将其删除
self.overlayView.backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.5];
刚设定
postDetails.layer.borderColor = [[UIColor grayColor] CGColor]; // set color as you want
postDetails.layer.shadowOpacity = 0.3f; // set Opacity as you want
postDetails.layer.shadowOffset = CGSizeMake(0.0, -1.0); // set it as you want
我使用UIImageView提供阴影。 我创建了一个图像,宽1像素,高12像素。 图像是黑色的,但是alpha是从顶部的0.5到底部的0.0的渐变。 RGBA 1.0,1.0,1.0,0.5-> 1.0,1.0,1.0,0.0-然后我将UIImageView放置在需要阴影的视图的正下方,并在视图的宽度上水平拉伸它。 当需要在下面的滚动视图滚动时通过更改UIImageView.alpha值来更改阴影的强度时,也使用了此方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.