我有一个UITextView
,其中包含"的影片"它下方tableView
。我无法弄清楚的问题是如何制作" drophadow"透明,以便通过阴影可以看到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;
编辑: 我认为这个问题的另一个原因是布局。 它是:
应该能够透过阴影看到文字,以便更清洁。
答案 0 :(得分:2)
我能够做到这一点的方法是通过.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;
此时,您应该会看到一个透明视图,其中投影仅显示在图像边框之外。
我基本上使用.shouldRasterize属性在与父图层进行任何alpha混合之前渲染图层。
答案 1 :(得分:0)
尝试使用以下代码:
postDetails.layer.shadowColor = [UIColor colorWithWhite:.5 alpha:1].CGColor;
postDetails.layer. shadowOpacity = 1.0f;
答案 2 :(得分:0)
textView的阴影不会解决您的问题,因为它不会扩展到tableView的全长。您可以将透明视图放在tableView的顶部,而不是这样。在编辑期间添加具有背景透明背景颜色的临时视图,并在完成编辑后删除
self.overlayView.backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.5];
答案 3 :(得分:0)
只需设置
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
答案 4 :(得分:0)
我使用UIImageView来提供阴影。我创建了1像素宽,12像素高的图像。图像是黑色的,但是α是从顶部的0.5到底部的0.0的梯度。 RGBA 1.0,1.0,1.0,0.5 - > 1.0,1.0,1.0,0.0 - 然后我将UIImageView放置在需要阴影的视图下方,并在视图宽度上水平拉伸。 当我需要通过更改UIImageView.alpha值来滚动滚动视图时需要更改阴影的强度时,我也使用了这个