【发布时间】:2018-10-13 20:38:15
【问题描述】:
我已经看到类似问题的其他一些答案,但没有一个解决方案对我有用,即使进行了一些调整。
正如标题所示,我希望我的UICollectionViewCells 具有圆角和阴影(或除顶部外的所有侧面的阴影)。到目前为止,我所做的是将两个视图添加到我的UICollectionViewCell - mainView,它显示单元格的必要内容并具有圆角,以及shadowView,它具有阴影。两个视图都不是另一个视图的子视图,它们一起存在于同一个单元格中。它们的尺寸完全相同,mainView 显然显示在shadowView 之上。这是我当前的代码实现:
let mainView = cell.viewWithTag(1003) as! UIView
mainView.layer.cornerRadius = 10.0
mainView.layer.borderWidth = 1.0
mainView.layer.borderColor = UIColor.clear.cgColor
mainView.layer.masksToBounds = true
let shadowView = cell.viewWithTag(1002) as! UIView
shadowView.layer.shadowColor = UIColor.black.cgColor
shadowView.layer.shadowOffset = CGSize(width: 0, height: 2.0)
shadowView.layer.shadowRadius = 2.0
shadowView.layer.shadowOpacity = 0.5
shadowView.layer.masksToBounds = false
shadowView.layer.shadowPath = UIBezierPath(roundedRect: shadowView.bounds, cornerRadius: mainView.layer.cornerRadius).cgPath
以下是这段代码产生的结果:
有人会认为mainView的角不够圆,阴影不够大。
然而,在移除shadowView 并将UICollectionView 的背景设置为黑色后,您可以看到mainView 的角实际上是圆的:
所以这意味着问题在于shadowView 的阴影大小。但是,我尝试增加阴影偏移和阴影半径,但没有任何效果。大多数更改要么在mainView 周围产生了非常厚的阴影,要么进一步减少了mainView 的四舍五入,要么什么也没做。
【问题讨论】:
-
您是如何设法在单元格中添加左右间距的?我的单元格的阴影被容器视图切断
标签: ios swift uiview uicollectionview uicollectionviewcell