gpt4 book ai didi

ios - swift 在矩形上绘制渐变

转载 作者:可可西里 更新时间:2023-11-01 00:53:19 25 4
gpt4 key购买 nike

我尝试在矩形中绘制渐变。下图显示,该渐变一​​般有效(蓝色),但它填满了整个屏幕。

我喜欢只在特定区域做渐变,比如绿色矩形。

我该怎么做?

enter image description here

我的梯度实验代码:-)

let context = UIGraphicsGetCurrentContext()

//let locations: [CGFloat] = [ 0.0, 0.25, 0.5, 0.75 ]
let locations: [CGFloat] = [ 0.0, 0.99 ]

let colors = [UIColor.blueColor().CGColor,
UIColor.whiteColor().CGColor]

let colorspace = CGColorSpaceCreateDeviceRGB()

let gradient = CGGradientCreateWithColors(colorspace,
colors, locations)

var startPoint = CGPoint()
var endPoint = CGPoint()

startPoint.x = 0.0
startPoint.y = 10.0
endPoint.x = self.frame.width-100;
endPoint.y = 10

//let rectangle_main = CGRectMake(CGFloat(15), CGFloat(0), CGFloat(1000), CGFloat(30));

//CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0)
CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0)

最佳答案

您需要在绘制渐变之前指定剪切路径。在您的情况下,创建一个矩形路径并调用 CGContextClip(context)

CGContextAddRect(context, CGRect(...))
CGContextClip(context)

CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0)

渐变将裁剪到矩形。

关于ios - swift 在矩形上绘制渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29046563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com