gpt4 book ai didi

objective-c - iOS 在部分 View 中绘制渐变

转载 作者:行者123 更新时间:2023-12-01 17:34:37 26 4
gpt4 key购买 nike

我创建了一个自定义进度条,它继承了 UIView 并实现了 drawRect。我设法在整个 View 上绘制了一个渐变。但是,我想绘制几个不同的渐变,每个渐变都在不同的位置。如何限制 CGContextDrawLinearGradient在我的视野中缩小矩形?

glossGradient = CGGradientCreateWithColorComponents(rgbColorspace, components, locations, num_locations);
CGPoint topCenter = CGPointMake(start + (CGRectGetMidX(currentBounds)/currentBounds.size.width), 0.0f);`
CGPoint midCenter = CGPointMake(start + (CGRectGetMidX(currentBounds)/currentBounds.size.width), currentBounds.size.height);
CGContextDrawLinearGradient(currentContext, glossGradient, topCenter, midCenter, 0);
start = start + (values[i] / currentBounds.size.width);
CGGradientRelease(glossGradient);
}

最佳答案

您可以使用 CGContectClipToRect限制绘图区域

然后对每个梯度做:

CGContextSaveGState(currentContext);
CGContextClipToRect(theRect); // theRect should be the area where you want to draw the gradient
... // gradient drawing code
CGContextRestoreGState(currentContext);

关于objective-c - iOS 在部分 View 中绘制渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8660982/

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