overrIDe func drawRect(rect: CGRect) { let context = UIGraphicsGetCurrentContext() CGContextMovetoPoint(context,CGRectGetMinX(rect),CGRectGetMaxY(rect)) CGContextAddlinetoPoint(context,CGRectGetMaxX(rect),CGRectGetMaxY(rect)) CGContextSetstrokecolorWithcolor(context,UIcolor(netHex: 0xEFEEF4).CGcolor) CGContextSetlinewidth(context,2) CGContextstrokePath(context)}
这非常有效.但是,当我插入带动画的行时,所有单元格的边框消失,并在插入动画完成时再次出现:
tableVIEw.insertRowsAtIndexPaths([NSIndexPath(forRow: cells.count - 1,inSection: 0)],withRowAnimation: UItableVIEwRowAnimation.Fade)
知道怎么避免这个吗?
解决方法 那么你可以在tablecell的awakeFromNib中尝试这个代码,如果你只想使用CALayers,假设你的tableVIEw覆盖了设备的整个宽度.overrIDe func awakeFromNib() { super.awakeFromNib() let borderLayer = CALayer() let lineHeight:CGfloat = 2 borderLayer.frame = CGRect(x: 0,y: self.frame.height - lineHeight,wIDth: UIScreen.mainScreen().bounds.wIDth,height: lineHeight) borderLayer.backgroundcolor = UIcolor.redcolor().CGcolor self.layer.addSublayer(borderLayer)}
你会得到输出:
还要使您的tablevIEw分隔符颜色清除
self.tableVIEw.separatorcolor = UIcolor.clearcolor()
这样它就不会与你的图层重叠.
我可以观察到,无论何时插入新行,现在没有细胞边界消失.
另外
我们可以在单元格故事板中使用UIImageVIEw并提供具有以下约束的颜色.
添加UIImageVIEw
向UIImageVIEw添加约束
我们完成了!
使用BezIEr Paths还有另一种替代解决方案可以实现这一目标
overrIDe func awakeFromNib() { super.awakeFromNib() let line = CAShapeLayer() let linePath = UIBezIErPath() linePath.movetoPoint(CGPointMake(0,self.frame.height)) linePath.addlinetoPoint(CGPointMake(UIScreen.mainScreen().bounds.wIDth,self.frame.height)) line.linewidth = 3.0 line.path = linePath.CGPath line.strokecolor = UIcolor.redcolor().CGcolor self.layer.addSublayer(line) }
这也产生相同的输出.
编辑:
如果我们没有为单元格使用故事板或笔尖并以编程方式创建单元格,那么我们可以执行以下解决方法:
在CustomtableVIEwCell类中创建一个属性
var borderLayer:CALayer!
现在在CustomtableVIEwCell类中有一个名为layoutSubvIEws的方法
overrIDe func layoutSubvIEws() { if(borderLayer != nil) { borderLayer.removeFromSuperlayer() } borderLayer = CALayer() let lineHeight:CGfloat = 2 borderLayer.frame = CGRect(x: 0,height: lineHeight) borderLayer.backgroundcolor = UIcolor.redcolor().CGcolor self.layer.addSublayer(borderLayer)}
试试吧.
总结以上是内存溢出为你收集整理的ios – UITableViewCell drawRect底部边框在insertRow上消失全部内容,希望文章能够帮你解决ios – UITableViewCell drawRect底部边框在insertRow上消失所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)