问题标签 [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 回答
875 浏览

ios - 在最简单的可能用例中,CAGradientLayer 因“exc_bad_access”而崩溃

一个普通的 UIView 子类,只有以下代码:

用 EXC_BAD_ACCESS 杀死运行时(不,没有僵尸,在你问之前)。

此外,不是 CAGradientLayer 过度释放 - 在层上放置多个浮动保留没有效果。

(顺便说一句,我从未见过 CAGradientLayer 在我从事的任何项目中真正起作用。我认为它被诅咒了 :)。我不会使用它,除非我需要动画渐变,而且 Apple 的 CGGradient 类只支持 const 数组,这使得动画代码非常容易出错)

0 投票
1 回答
15054 浏览

ios - 如何应用 CAGradientLayer 作为另一个 CALayer 的掩码?

我有一个视图,它有一个 CALayer。当我创建一个 CAGradientLayer 并将其应用为该视图的 CALayer 的掩码时,没有任何反应。为什么?

在 -initWithFrame: 的视图中,我这样做:

如果我更换

然后我看到渐变。是从黑到白。

有什么诀窍?

0 投票
5 回答
34434 浏览

iphone - UIView 透明渐变

给定iOS上的任意UIView,有没有办法使用Core Graphics(想到CAGradientLayer)对其应用“前景透明”渐变?

我不能使用标准的 CAGradientLayer,因为背景比 UIColor 更复杂。我也不能覆盖 PNG,因为当我的子视图沿其父垂直滚动视图滚动时,背景会发生变化(见图)。

我有一个不优雅的后备:让我的 uiview 剪辑它的子视图,并在滚动父滚动视图时移动背景的预渲染渐变 png。

透明uiview渐变问题

0 投票
1 回答
2093 浏览

ios - 自定义 CAGradientLayer 不设置动画

我制作了一个 CAGradientLayer 的自定义类(添加了径向渐变选项)。我工作,但我不知道为什么我不能为颜色设置动画。

这是我的代码。

动画是一个简单的 CABasicAnimation,我将 toValue 设置为一个带有颜色的新数组。

0 投票
0 回答
718 浏览

iphone - 动画 CAGradientLayer

我在用着...

...在我的按钮上进行线性填充。问题是当我为帧大小设置动画(使用 UIView beginAnimations)时,CAGradientLayer 消失并且不与帧的其余部分一起设置动画。这有什么不工作的原因吗?

有没有更好的方法来做线性淡入淡出?

0 投票
1 回答
1657 浏览

objective-c - CAGradientLayer 类型——有什么意义?

根据 iOS CAGradientLayer 文档,type 属性只有一个有效值 kCAGradientLayerAxial,它也恰好是默认值。这个属性的目的对我来说是个谜,因为我想在不覆盖 drawLayer: inContext 的情况下实现径向 CAGradientLayer,并希望找到类似于 kCAGradientLayerRadial 的东西。任何照明赞赏。

0 投票
1 回答
1832 浏览

iphone - CALayer 不在设备上渲染背景颜色,在模拟器中工作

我已经从图层中创建了一个自定义按钮。我在init. 一切都按预期工作,直到我去修改*它们。只有在实际设备上才会出现问题,在模拟器上代码按预期工作。

我尝试通过将 needsDisplay 和 needsLayout 设置为来强制图层渲染YES

模拟器

模拟器截图

设备

设备截图

测试

我已经在 iOS 5.1 和 4.2 上进行了测试,结果相同。似乎在模拟器版本 4.1、4.2 和 5.1 上工作相同

0 投票
1 回答
832 浏览

objective-c - 添加了 CAGradientLayer,在我的 UIView dealloc 中得到了这个:[CALayer release]: message sent to deallocated instance

这里那里,

我有一个自定义 UIView。此视图充当活动指示器,但作为 UIActivityIndi​​catorView 上方的标签。在初始化中,我添加了一个 CAGradientLayer。我分配并初始化它,并将它作为 UIView 层属性的子层插入到索引 0 处。在我的 dealloc 方法被调用时,我在控制台中收到一条消息:

我的代码:

有人有想法么。因为我正在分配和初始化渐变层,所以我负责释放它。我应该能够分配和初始化并分配给一些 ivar。也许我应该创建一个带有保留的属性。

谢谢,

0 投票
3 回答
593 浏览

iphone - CALayer setCornerRadius 仍然在下面留下白色角落

我正在尝试创建一个带有标签的简单渐变,我可以将其覆盖在 MKMapView 之上。我查看了 SO,发现我可以使用 CAGradientLayer 而不是覆盖 UIView 中的 drawRect。我想我会试一试。在我的 viewDidLoad 中,我这样做:

它在正确的路径上,除了左上角和右上角有这个白色。是否有一个原因?我认为这可能是因为我没有设置图层的背景颜色或其他东西,因为我之前在 UIViews 上发生过这种情况,但看起来不像。

在此处输入图像描述

谢谢!

0 投票
1 回答
347 浏览

objective-c - 带有渐变叠加的 UIPageViewController?

我需要创建一个类似书本的应用程序并想使用 UIPageViewController。(iPad,具有两页的水平布局 (UIPageViewControllerSpineLocationMid)。

为了使屏幕更具吸引力,我希望控制器的视图覆盖有图像或 CAGradientLayer 使脊椎可见。

我尝试向 pageViewController 添加一个子视图,但是当动画过渡开始时它似乎被删除了。

有人有想法吗?