我正在尝试使用Objective-C(IOS)绘制“圆锥形”/“弧形”渐变(我不知道正确的术语是什么)。就像以下thread中显示的图像一样,Photoshop将其称为“角度”渐变。
经过数天的搜索和查找互联网而毫无结果后,我决定在这里寻求帮助。我想做的是创建一个自定义UIView,它是一个圆形进度条,基本上是一个环,类似于TweetBot iPhone应用程序中看到的活动指示器(当您拖动刷新时显示,可以在视频here中看到,在iPhone屏幕顶部的17-18秒左右)。我希望进度指示器(环的填充)是一个简单的两种颜色的渐变,可以通过编程方式设置,并且视图可以调整大小。
我卡在了如何用渐变填充环形的问题上。通过谷歌搜索、阅读苹果的核心图形文档以及在SO上搜索,得到的答案要么是关于径向渐变,要么是关于线性/轴向渐变,这不是我想要实现的效果。
上面链接的帖子建议使用预制图像,但这不是一个选项,因为渐变的颜色应该是可设置的,视图应该是可调整大小的,进度条的填充显然并不总是100%满的(这将是上面帖子中所示渐变的状态)。
我唯一想到的解决方案是手动绘制渐变,而不是使用CGGradientRef,在圆形路径内剪切小片段的渐变,并用单色填充。虽然我不知道当进度条被动画时,这种方法的表现如何,它不应该很差,但可能会成为一个问题。
所以我的第一个问题是: 在Objective-C(IOS)中,是否有更简单/不同的解决方案来绘制锥形/弧形渐变,而不是我想出的解决方案? 第二个问题:
如果我必须使用我想出的解决方案手动在视图中绘制渐变,我如何确定或计算(如果可能的话)我正在尝试绘制的每个颜色“片段”(以图像下方所示)的值(HEX或RGBA)。
经过数天的搜索和查找互联网而毫无结果后,我决定在这里寻求帮助。我想做的是创建一个自定义UIView,它是一个圆形进度条,基本上是一个环,类似于TweetBot iPhone应用程序中看到的活动指示器(当您拖动刷新时显示,可以在视频here中看到,在iPhone屏幕顶部的17-18秒左右)。我希望进度指示器(环的填充)是一个简单的两种颜色的渐变,可以通过编程方式设置,并且视图可以调整大小。
我卡在了如何用渐变填充环形的问题上。通过谷歌搜索、阅读苹果的核心图形文档以及在SO上搜索,得到的答案要么是关于径向渐变,要么是关于线性/轴向渐变,这不是我想要实现的效果。
上面链接的帖子建议使用预制图像,但这不是一个选项,因为渐变的颜色应该是可设置的,视图应该是可调整大小的,进度条的填充显然并不总是100%满的(这将是上面帖子中所示渐变的状态)。
我唯一想到的解决方案是手动绘制渐变,而不是使用CGGradientRef,在圆形路径内剪切小片段的渐变,并用单色填充。虽然我不知道当进度条被动画时,这种方法的表现如何,它不应该很差,但可能会成为一个问题。
所以我的第一个问题是: 在Objective-C(IOS)中,是否有更简单/不同的解决方案来绘制锥形/弧形渐变,而不是我想出的解决方案? 第二个问题:
如果我必须使用我想出的解决方案手动在视图中绘制渐变,我如何确定或计算(如果可能的话)我正在尝试绘制的每个颜色“片段”(以图像下方所示)的值(HEX或RGBA)。
(无法链接图片){{link1:渐变分割插图}}