gpt4 book ai didi

objective-c - 使用 CoreGraphics 绘制圆角线性渐变(或扩展径向渐变)

转载 作者:行者123 更新时间:2023-12-03 17:42:06 25 4
gpt4 key购买 nike

我想使用 CoreGraphics 进行一些自定义绘图。我的 View 上需要一个线性渐变,但问题是这个 View 是一个圆角矩形,所以我希望我的渐变在角度上也是圆角的。您可以在下图中看到我想要实现的目标: Example: Rounded rectangle with rounded linear gradient.

那么这是否可以在 CoreGraphics 或其他一些编程且简单的方法中实现?谢谢。

最佳答案

我认为没有一个 API 可以做到这一点,但是如果您首先绘制径向渐变,例如在 (N+1)x(N+1) 中,您可以获得相同的效果。 size 位图上下文,然后将图像从上下文转换为可调整大小的图像,并将左右大写设置为 N .

伪代码:

UIGraphicsBeginImageContextWithOptions(CGSizeMake(N+1,N+1), NO, 0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();

// <draw the gradient into 'context'>

UIImage* gradientBase = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

UIImage* gradientImage = [gradientBase resizableImageWithCapInsets:UIEdgeInsetsMake(0,N,0,N)];

如果您还希望图像垂直缩放,只需将大小写设置为 UIEdgeInsetsMake(N,N,N,N) .

关于objective-c - 使用 CoreGraphics 绘制圆角线性渐变(或扩展径向渐变),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10397258/

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