首页 > 解决方案 > Tableview Xib 阴影 Swift

问题描述

这是我正在尝试做的事情:

原始屏幕截图

截图来自Iphone:

截图

这是我的代码:

cell.shadowLayerView.layer.masksToBounds = false
cell.shadowLayerView.layer.shadowOffset = CGSize(width: 0, height: 0)
cell.shadowLayerView.layer.shadowColor = UIColor.black.cgColor
cell.shadowLayerView.layer.shadowOpacity = 0.23
cell.shadowLayerView.layer.shadowRadius = 4
cell.shadowLayerView.layer.shadowPath = UIBezierPath(roundedRect: cell.shadowLayerView.bounds, cornerRadius: 2).cgPath
cell.shadowLayerView.layer.shouldRasterize = true
cell.shadowLayerView.layer.rasterizationScale = UIScreen.main.scale
cell.discriptionLbl.frame.size.width = UIScreen.main.bounds.size.width

这是我的tableview xib。在原始图像中显示所有侧面(上,下,左,右)的浅灰色阴影,但在拍摄的图像中显示所有侧面阴影,但为什么在右侧和底部显示额外的阴影。

见下图:

最新拍摄的图像

问题:如何像原始图像一样从视图的各个侧面显示相同的阴影(浅灰色阴影)?

有人可以向我解释如何解决这个问题,我已经尝试解决这个问题但还没有结果。

任何帮助将不胜感激。

提前致谢。

标签: ioscssswiftuitableview

解决方案


请参阅以下代码:

mainViewCorner.layer.shadowColor = UIColor.red.cgColor;
mainViewCorner.layer.shadowOffset = CGSize.zero //direction of shadow
mainViewCorner.layer.shadowOpacity = 1.0; // opacity for shadow
mainViewCorner.layer.shadowRadius = 0.0; //amount of shadow to blur
mainViewCorner.layer.cornerRadius = 4.0;

您的代码的问题是shadowOffset. 它定义了阴影的方向。如果您想要所有侧面的阴影 - 它的宽度和高度都必须为零。


推荐阅读