【发布时间】:2015-11-18 21:39:07
【问题描述】:
我正在尝试生成我的 UIView 的 pdf。在视图中,我可以使用 CGContextSetBlendMode(context, CGBlendMode.Clear) 简单地擦除线条。虽然当我绘制到 pdf 上下文(使用 UIGraphicsBeginPDFContextToData 生成)时,这在 UIView 的上下文中可以正常工作,但相同的代码会生成与 CGContextSetStrokeColorWithColor 中设置的颜色相同的线条。有人知道在 pdf 上下文中实现擦除的另一种方法吗?
例如,当我在 drawrect 的上下文下方运行代码时,会产生一条微弱的红线 (alpha = 0.5),其中有一个小间隙穿过红线。但是,如果我提供一个 pdfcontext,它会变成一条微弱的红线,其中有一条硬红线穿过它(因为叠加了另一条 alpha 0.5 的细红线)
let path = CGPathCreateMutable()
CGPathMoveToPoint(path, nil, 10, 10)
CGPathAddLineToPoint(path, nil, 10,100)
CGContextAddPath(context, path)
CGContextSetLineCap(context, CGLineCap.Round)
CGContextSetStrokeColorWithColor(context, UIColor.redColor().colorWithAlphaComponent(0.5).CGColor)
CGContextSetLineWidth(context, 10.0)
CGContextStrokePath(context)
CGPathMoveToPoint(path, nil, 10, 10)
CGPathAddLineToPoint(path, nil, 10,100)
CGContextAddPath(context, path)
CGContextSetBlendMode(context, CGBlendMode.Clear)
CGContextSetLineWidth(context, 2.0)
CGContextStrokePath(context)
【问题讨论】:
标签: swift uiview pdf-generation quartz-graphics erase