Emi*_*iel 15 macos cocoa core-graphics
使用Cocoa或Quartz中的大量绘图函数,绘制路径相当容易,并使用渐变填充它们.然而,我似乎无法找到一种可接受的方式,"笔画" - 绘制一条线宽为几个像素的路径并使用渐变填充此笔划.这是怎么做到的?
编辑:显然问题不够明确.感谢到目前为止的回复,但我已经明白了.我想要做的是:
广场http://emle.nl/forumpics/misc/squares.png
左方框是在路径中绘制的NSGradient,后跟路径笔划消息.权利就是我想要做的; 我想用渐变填充笔划.
根据Peter Hosey的回答,我设法做了一个简单的渐变曲线,如下所示:
我通过编写下面的代码在UIView类的drawRect(_ :)方法中完成了这个:
override func drawRect(rect: CGRect) {
let context = UIGraphicsGetCurrentContext()
CGContextBeginTransparencyLayer (context, nil)
let path = createCurvePath()
UIColor.blueColor().setStroke()
path.stroke()
CGContextSetBlendMode(context, .SourceIn)
let colors = [UIColor.blueColor().CGColor, UIColor.redColor().CGColor]
let colorSpace = CGColorSpaceCreateDeviceRGB()
let colorLocations :[CGFloat] = [0.0, 1.0]
let gradient = CGGradientCreateWithColors(colorSpace, colors, colorLocations)
let startPoint = CGPoint(x: 0.0, y: rect.size.height / 2)
let endPoint = CGPoint(x: rect.size.width, y: rect.size.height / 2)
CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, CGGradientDrawingOptions.DrawsBeforeStartLocation)
CGContextEndTransparencyLayer(context)
}
Run Code Online (Sandbox Code Playgroud)
函数createCurvePath()返回UIBezierPath对象.我还将path.lineWidth设置为5分.
归档时间: |
|
查看次数: |
11894 次 |
最近记录: |