【发布时间】:2019-04-01 03:01:56
【问题描述】:
我正在使用边框阴影,直到 iPhone 6s 都可以正常工作,但在更大的变体中边框不会出现。
我的层次结构如下: tableView --> cell--> view(parentView)--> objects
created extension for uiView:
func addViewShadow(offset: CGSize, radius: CGFloat, color: UIColor, opacity: Float, cornerRadius: CGFloat? = nil) {
self.layer.shadowOffset = offset
self.layer.shadowRadius = radius
self.layer.shadowOpacity = opacity
self.layer.masksToBounds = false
self.layer.shadowColor = color.cgColor
if let r = cornerRadius {
self.layer.shadowPath = UIBezierPath(roundedRect: bounds, cornerRadius: r).cgPath
self.layer.cornerRadius = r
// self.clipsToBounds = true
}
}
在课堂上使用:
cell.parentView.addViewShadow(offset: CGSize.zero, radius: 2, color: UIColor.darkGray, opacity: 1,cornerRadius: 5)
图片:
【问题讨论】:
-
只要确保表格的自动布局约束工作正常,不要忘记 setNeedsDisplay() 可能会有所帮助
-
我什至不认识一个叫
bounds的人。 -
在视图的
-layoutSubviews()或-draw(rect:)方法中绘制它,而不是在为当前屏幕评估视图的边界时。