问题标签 [cagradientlayer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1044 浏览

iphone - CAShapeLayer 上的 CAGradientLayer SetMask 使应用程序崩溃

使用来自许多 伟人的 示例代码,我能够使用 CAShapeLayer 制作复杂的形状,并且使用子类 UIView 没有问题:

这段代码效果很好,现在尝试在形状上添加一个 CAGradientLayer 和蒙版,我一直在崩溃,特别是: QuartzCore CA::Layer::ensure_transaction_recursively(CA::Transaction*):

这是梯度代码,请注意,这是取自其他关于 SO 的工作示例:

我试图调试和研究这个问题,并且通常怀疑 UIColors 不是 CGColors 或 (__bridge id) 不正确,我使用两个位置作为渐变,只有 2 种颜色,而且我已经尝试了几十个不同版本的:有或没有 setNeeds 显示,属性与本地声明,子类内部和外部的渐变层,在插入子层时仍然给我同样的崩溃。

当我取出 setMask: 调用时,它不会崩溃,只会用渐变填充整个帧。

这似乎我只是错过了一些次要或明显的事情。请注意,使用 iOS 6 和 ARC——希望继续使用 CAShapeLayer 和 CAGradientLayer,因为它使动画更容易一些(这是最终目标)。

0 投票
1 回答
763 浏览

iphone - 使用 UIBezierPath 中的 CAShapeLayer 屏蔽时,CAGradientLayer 出现意外输出

我正在使用来自Palimondo的示例代码:这是学习如何将 CAGradientLayer 屏蔽到 CAShapeLayers 上的出色代码。输出如下:

在此处输入图像描述

现在我正在尝试创建此图像:

在此处输入图像描述

使用 PaintCode,我能够获取所有 UIBezierPath 和渐变颜色并停止并将它们放入多个数组中,并且基本上遍历每个将其添加到新的 CAShapeLayer 和 CAGradientLayer 中,如下所示:

目标是拥有 16 个单独的 CAGradientLayer,我可以使用 CoreAnimation 对其进行动画处理以创建一种“旋转”效果(我可以将 PaintCode 的输出放入 drawRect 中,它可以工作,问题是我被告知我会通过 CoreGraphics 对颜色或渐变进行动画处理比将它们放置在图层中要困难得多)。

然后,输出如下:

70年代舞会版...

经过 100 次迭代之后,在此之前,我尝试换掉[UIColor clearColor]for whiteColor(这不是示例代码所需的),然后输出:

差不多好了...

你可以看到只有几个渐变,我相信这whiteColor会干扰 CAGradientLayer。

我知道我一定错过了一些非常微妙的东西,但我似乎看不到它。

为什么在示例代码中,我们能够使用clearColor并适当地显示渐变,但使用clearColor我的 UIBezierPath 附加到我的 CAShapeLayer 时,渐变会中断?

一位朋友提到,另一种解决方案是使用 3 个渐变圆并基本上在蒙版形状上同心旋转它们,从而产生错觉,但是我不知道如何才能做到这一点。

0 投票
1 回答
2846 浏览

ios - 带角度的 CAGradientLayer

我正在绘制CGPath不是矩形或正方形的,并添加CGPathCAShapeLayer. 这是从使用中CAShapeLayer得到的框架。所以它将是矩形或正方形。现在我想将渐变颜色设置为图层,但我的路径不是矩形或正方形,因此它不会在整体上均匀分布渐变颜色。有什么方法可以将渐变颜色设置为 CGPath,或者如何设置带角度的渐变颜色?CGPathCGPathGetBoundingBox(path)CGPath

请参阅屏幕截图以了解情况。这里白色表示框架CGPath和绿色,即我们绘制的CGPath。在底部CGPath您可以看到白色渐变颜色,它在CGPath.

在此处输入图像描述

在此处输入图像描述

0 投票
2 回答
2832 浏览

ios - 如何从它的超级层中删除 CAGradientLayer

我将图层添加到我的视图中:

然后它似乎并没有被删除,即使我在超级层上调用needsDisplay :

我怎样才能删除它?

0 投票
2 回答
1000 浏览

ios - UITextField 中的渐变文本

我正在使用 CAGradientLayer 为文本字段制作渐变背景。看起来像这样

在此处输入图像描述

我想在文本上使用渐变而不是背景。如何在 UITextField 中制作渐变文本?

我用来在图像中制作渐变的代码

0 投票
1 回答
1929 浏览

ios - layer.mask 渐变在 iOS7 中为 Solid

下一个代码在 ios6 中运行良好。它应该对视图应用顶部和底部的内部 alpha 渐变:

但!如果我在 iOS7 中运行此代码,则渐变的“透明”部分不是很好的混合 alpha 渐变,而是纯白色。

0 投票
3 回答
17256 浏览

ios - iOS 7.0 中的水平 CAGradientLayer

在我的应用程序中,我使用 aCAGradientLayer来设置单元格的背景,以这种方式:

(这段代码在里面- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

它在 iOS 6 上工作正常,但在 iOS 7 上不起作用,在新的 iOS 中,渐变始终是垂直的(忽略 startPoint 和 endPoint)

有没有人遇到过同样的问题?

谢谢,

佩里

0 投票
2 回答
885 浏览

ios - 为什么我不能在 ARC 中使用自定义颜色创建 CAGradientLayer?

在我的表格视图控制器的以下代码中,如果我使用“库存”颜色,[UIColor blueColor]它可以正常工作,但是如果我尝试使用 RGBA 值创建自定义颜色,它会严重失败并且除了纯黑色之外不会绘制任何东西。

这是因为 ARC 在 CGColorRef 可以使用之前释放了它吗?我怎样才能让它与自定义颜色一起使用?

0 投票
1 回答
154 浏览

uitableview - 应用于 UITextView 的 CAGradient 颜色错误

我正在创建一个 iOS7 应用程序,并且我在一个单元格UITextView内部应用了一个。如果我使用不同的颜色可以正常工作,但如果我使用渐变的颜色之一,它会变成灰色......UITableViewCAGradientclearColorclearColor

这是我的代码。theContent是我的UITextView

这是最终的(错误的)结果......

在此处输入图像描述

我怎样才能解决这个问题有一个clearColor渐变whiteColor???

0 投票
2 回答
7382 浏览

ios - 如何为 UIButton 设置自定义渐变背景?

我想创建一个自定义 UIButton 渐变背景。我附上了一些关于要求的图片。
在此处输入图像描述
在此处输入图像描述

但是我的渐变背景并不像我预期的那样。

在此处输入图像描述

我的问题是如何将位置或位置设置为渐变?(从上到中,然后从中到下)。

这是我的代码: