我在cellForItemAt方法中画了一个圆,对于特定的条件,如下所示:
if cellState.date == CalendarModel.DUE_DATE {
let shapeLayer = CAShapeLayer()
let circlePath = UIBezierPath(arcCenter: CGPoint(x: (cell.layer.frame.size.width)/2,y: (cell.layer.frame.size.height)/2), radius: CGFloat(15), startAngle: CGFloat(0), endAngle:CGFloat(Double.pi * 2), clockwise: true)
shapeLayer.path = circlePath.cgPath
//change the fill color
shapeLayer.fillColor = UIColor.clear.cgColor
//you can change the stroke color
shapeLayer.strokeColor = UIColor.FlatColor.Blue.midnightBlue.cgColor
//you can change the line width
shapeLayer.lineWidth = 1.0
cell.layer.addSublayer(shapeLayer)
}这个圆圈一直在随机重复。我尝试在willDisplayCell中使用下面的代码,但是它会删除单元格中的所有内容。
func calendar(_ calendar: JTAppleCalendarView, willDisplay cell: JTAppleCell, forItemAt date: Date, cellState: CellState, indexPath: IndexPath) {
// comment
cell.layer.sublayers?.forEach { $0.removeFromSuperlayer() }
}如何具体删除cellForItemAt中添加的shapeLayer?任何帮助都将不胜感激。谢谢。
https://stackoverflow.com/questions/47518452
复制相似问题