我正在尝试创建一个具有圆角和阴影的自定义表格单元格。最终目标是创建“卡片”外观和感觉。我的 Storyboard设置如下。我在单元格的内容 View 上创建了一个单独的 View ,以便我可以操纵该 View 以获得我想要的效果。问题是效果似乎只影响 View 的顶部。底角不是圆角,您还可以看到边框围绕着整个 View 。我也包含了自定义单元类文件。关于如何使 View 的其余部分具有圆角和边框的任何想法?
class EventTableCell: UITableViewCell {
@IBOutlet weak var collectionView: UIView!
@IBOutlet weak var address: UILabel!
@IBOutlet weak var statusImage: UIImageView!
@IBOutlet weak var customerName: UILabel!
@IBOutlet weak var customerTime: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
//collectionView.backgroundColor = UIColor.gray
collectionView.clipsToBounds = false
collectionView.layer.cornerRadius = 10
collectionView.layer.borderWidth = 1
collectionView.layer.borderColor = UIColor.gray.cgColor
collectionView.layer.shadowColor = UIColor.lightGray.cgColor
collectionView.layer.shadowOpacity = 1
collectionView.layer.shadowOffset = CGSize.zero
collectionView.layer.shadowRadius = 3
}
}
主 Storyboard中 UiTableview 的屏幕截图:
输出的屏幕截图:
最佳答案
使用这个方法:
extension UIView {
func addShadow(offset: CGSize, color: UIColor, radius: CGFloat, opacity: Float) {
layer.masksToBounds = false
layer.shadowOffset = offset
layer.shadowColor = color.cgColor
layer.shadowRadius = radius
layer.shadowOpacity = opacity
let backgroundCGColor = backgroundColor?.cgColor
backgroundColor = nil
layer.backgroundColor = backgroundCGColor
}
}
像这样调用这个方法:
view.addShadow(offset: CGSize(width: 5, height: 5), color: .lightGray, radius: 5, opacity: 0.5)
可以在tableCell的'awakeFromNib'方法中调用该方法。
注意:还要给表格行适当的高度。
关于ios - TableView 自定义单元格设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53625779/