问题标签 [cashapelayer]

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 投票
0 回答
473 浏览

objective-c - 使用 CALayer 作为 GLKView 支持层的掩码会阻止触摸事件?

我正在尝试使用 CAShapeLayer 作为 GLKView 支持层的掩码,如下所示:

但是一旦我这样做,我所有的触摸事件都会停止触发。不再有 touchesBegan、touchesEnded 等。有人知道为什么吗?提前致谢!

0 投票
2 回答
2150 浏览

objective-c - UIGraphicsGetImageFromCurrentImageContext 与 CALayers

我正在尝试创建UIView带有CALayer子层的图像。使用此代码

我得到了一张图像,但它不能准确地代表屏幕上显示的内容。特别是,它不尊重CAShapeLayermask 属性。我的圆角没有出现在图像中。

下面是一个示例在屏幕上的显示方式与它在图像中的显示方式的比较: 在此处输入图像描述

只是为了澄清一下,右边的图像与旧对象放置在相同的位置,基本上是对对象进行了光栅化。这就是为什么有相同的背景;它不是我正在捕捉图像的对象的一部分。

如何在图像中保留CAShapeLayer蒙版的同时捕获对象的图像?

编辑:似乎问题在于图层蒙版,而不是路径。

0 投票
2 回答
4361 浏览

ios - (iOS) 如何使用 shapeLayer 为圆角矩形设置动画?

我正在尝试为圆角矩形的宽度设置动画,问题是当从更大的宽度变为更薄的宽度时,动画会出现“像差缓和跳跃”。

这是代码:

当我开始动画时:

我究竟做错了什么?

0 投票
1 回答
1139 浏览

iphone - CAShapeLayer 和 CAShapeLayer 子层慢

我有一个带有 CAShapeLayer 子层的 UIScrollView,它呈现一条简单的线条。CAShapeLayer 子层有自己的子 CAShapeLayer。这会导致滚动和缩放变慢。层次结构是这样的:

-UIScrollViewLayer -CAShapeLayer -CAShapeLayer

如果我改变这个层次结构,使它只有一层深,我就没有性能问题:

-UIScrollViewLayer -CAShapeLayer -CAShapeLayer

我究竟做错了什么?

0 投票
2 回答
1019 浏览

ios - 如何让 UITableView 与 CAShapeLayer 掩码一起使用?

我想以三角形的形状掩盖 UITableView。我的第一种方法是设置一个 CAShapeLayer 并将其作为蒙版直接添加到表格视图上。但后来,我得到了与表格视图一起滚动的三角形。

我的下一个方法是将表格视图作为具有完全相同位置和大小的超级视图放在 UIView 中。在下面的代码片段中,self.triangleView 是超级视图。

到目前为止,这很有效,因为我现在有一个形状像三角形的表格视图。但我现在有问题,我无法滚动表格视图。超级视图不会将触摸路由到内部的表格视图。有任何想法吗?

0 投票
1 回答
1519 浏览

ios - 在不中断交互的情况下向 UIView 添加圆角。

这个答案很好用,将圆角添加到 UITableView 的顶部?除了我的 UIBarButtonItems 不再可点击。我的猜测是,面具现在位于破坏交互的按钮之上。

有没有人有任何想法来实现这一点而不干扰其他视图?

0 投票
1 回答
1402 浏览

iphone - 如何用 CAShapeLayer 绘制图形?

是否可以使用 CAShapeLayer 仅绘制具有给定线宽的曲线?它似乎只能绘制填充形状。我想绘制一个动画绘图图。只是一条线,不是一个形状。

0 投票
2 回答
2923 浏览

ios - 修改路径时如何重绘 CAShapeLayer?

我正在尝试向我CAShapeLayer的路径添加一个子路径,但是除非我首先分配到nil路径然后我重新分配myPathCAShapeLayer. 我试过了,setNeedsRedisplay但它不起作用。

这是LoadViewwheremyPathshapeLayerare 属性中的代码:

例如,这是我对路径进行更改的地方。我只是添加一个新的子路径myPath

任何人都知道如何处理这个?我正在使用 iOS 5.0。

0 投票
1 回答
4539 浏览

objective-c - 如何在 Objective-C 中设置 CAShapeLayer 透明?

我正在尝试在 UIButton 上设置嵌入阴影,感谢其他 SO 帖子,我已经设法做到了:

我确实得到了一个漂亮的白色内阴影,但是 shadowLayer 添加了一个黑色不透明矩形(阴影路径)。

尝试过[shadowLayer setFillColor:UIColor.clearColor.CGColor];,但它也消除了阴影。也[shadowLayer setBackgroundColor:UIColor.redColor.CGColor];无所作为。

例子

我怎样才能摆脱它?!

0 投票
1 回答
5308 浏览

objective-c - 使用 CABasicAnimation 动画 CAShapeLayer 的 strokeColor

我在使用上一个线程的答案为 a 上的闪烁笔划设置动画时一直不成功CAShapeLayer经过多次搜索,我找不到其他使用.CABasicAnimation

我想做的是让我的CAShapeLayer脉搏在两种颜色之间跳动。使用CABasicAnimationfor opacity 效果很好,但是让[CABasicAnimation animationWithKeyPath:@"strokeColor"]我望而却步,我将不胜感激有关如何成功实施的任何建议。

取消注释不透明度动画会导致预期的不透明度褪色。笔画动画不产生任何效果。隐式 strokeColor 更改按预期进行动画处理,但我希望有文档确认 strokeColor 可以使用 CABasicAnimation 显式设置动画。

更新:具体问题是 shapeLayer.path 为 NULL。纠正这个问题就解决了。