问题标签 [calayer]

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 投票
2 回答
581 浏览

iphone - 高跟鞋!调试器说“超出范围”!

我只是无法想象问题到底是什么。我做了一个漂亮的应用程序,并决定只使用 CALayers 来“渲染”。

当我看到位置属性的变化被动画化时,决定实现一个名为 tanCenter 的自定义 getter-setter“抽象”属性来设置位置而不设置动​​画。

由于我将其合并到项目中,因此它崩溃而没有任何“可理解的”(对我而言)错误消息。我只能看到那些“超出范围”-s。我什至无法在不崩溃的情况下获得这个 tanCenter 属性 NSLog-ged。

帮帮我,欧比旺·克诺比;你是我唯一的希望。

0 投票
2 回答
1943 浏览

ios - 如何将 Sprite 扭曲为梯形?

我正在尝试将 Sprite 转换为梯形,我并不真正关心插值,即使我知道没有它我的图像会丢失细节。我真正想做的就是将我的矩形 Sprite 变成这样的梯形:


有没有人用 CGAffineTransforms 或 cocos2d 做过这个?

0 投票
2 回答
5284 浏览

cocoa - 为什么必须使用 CALayer 的presentationLayer 进行命中测试?

我正在开发一个 Cocoa Touch 应用程序,并试图通过确定视图层的哪个子层被触摸来处理触摸。我的控制器代码如下所示:

这行不通。如果我在子层的底部点击它会起作用,但不是在顶部。经过一个小时的拉扯和谷歌搜索,我终于发现如果使用表示层而不是层本身进行命中测试,它会起作用:

所以,我已经解决了我的问题,但我的问题是:为什么?

我已通读 Core Animation 指南,并且了解表示树和渲染树可能与对象模型树不同。但我不明白为什么表示树(显然)会有不同的命中测试行为。表示树和对象模型不会有相同的框架、边界等吗?

0 投票
1 回答
2030 浏览

iphone - CALayer 使用的简单示例——可能在 UITextField 中

我需要为包含多个 UITextField 的 Cocoa Touch 数据输入屏幕实现自定义键盘。我已经构建了键盘,一切正常,除了现在我需要弄清楚如何实现闪烁光标。(当您禁用 UITextField 的内置键盘时,您也会丢失光标)。在谷歌搜索中,我看到一些提到使用 CALayer 动画来做到这一点。但是,我还没有找到一个简单的例子来说明如何实现它。由于 UITextField 继承自 UIView,我希望可以使用文本字段视图作为宿主层。眨眼的动画部分并不是让我担心的,它只是正确设置而已。任何建议或指向包含简单教程的其他站点的指针?(我发现的一切都面向多层次和游戏,

0 投票
15 回答
51436 浏览

iphone - 在 -[CALayer setNeedsDisplayInRect:] 中禁用隐式动画

我在它的 -drawInContext: 方法中有一个包含一些复杂绘图代码的层。我试图最小化我需要做的绘图量,所以我使用 -setNeedsDisplayInRect: 来更新更改的部分。这工作非常出色。但是,当图形系统更新我的图层时,它会使用交叉淡入淡出从旧图像过渡到新图像。我希望它立即切换。

我尝试使用 CATransaction 关闭操作并将持续时间设置为零,但都不起作用。这是我正在使用的代码:

我应该使用 CATransaction 上的不同方法吗(我也尝试了 -setValue:forKey: 与 kCATransactionDisableActions,结果相同)。

0 投票
14 回答
66562 浏览

iphone - 使用 CALayers 的圆形 UIView - 只有一些角落 - 如何?

在我的应用程序中 - 有四个按钮命名如下:

  • 左上方
  • 左下方
  • 右上
  • 右下

在按钮上方有一个图像视图(或 UIView)。

现在,假设用户点击左上角的按钮。上方的图像/视图应在该特定角处四舍五入。

我在将圆角应用于 UIView 时遇到了一些困难。

现在我正在使用以下代码将圆角应用于每个视图:

上面的代码将圆度应用于提供的视图的每个角。相反,我只想对选定的角应用圆度,例如 - 顶部 / 顶部 + 左侧 / 底部 + 右侧等。

可能吗?如何?

0 投票
1 回答
12777 浏览

iphone - 屏蔽 CALayer - iPhone

我正在为 iPhone 创建一个自定义开/关切换开​​关(类似于标准开关),我正处于设置滑块蒙版的[[myView layer] setMask:maskLayer]位置,但调用设置蒙版层的相对位置它被遮罩的层,而不是相对于遮罩层的容器层。对于这个特定的场景,遮罩层的位置需要相对于它的包含层进行设置,因为切换滑块将在遮罩下方移动并且遮罩应该保持静止。

无需对蒙版和切换滑块组件进行动画处理即可达到所需的效果,有人知道如何进行这项工作吗?这是我到目前为止所得到的:

0 投票
1 回答
2001 浏览

iphone - UIScrollView 和 CALayers

我有一个完全由 CALayers 组成的自定义 UIView。

在 awakeFromNib 方法中,它创建所有 CALayer 并将其设置到适当的位置(CAGradientLayer、几个 CATextLayer 和一些自定义 CALayer 子类)。自定义 UIView 不会覆盖 drawRect: 方法,因为没有直接在视图中进行绘图(所有绘图都在子层中完成)。

所以我把这个视图嵌入到 UIScrollView 中。问题?没有滚动条出现,视图也不会滚动。该视图明显大于滚动视图的边界,而不是允许我滚动,它只是在滚动视图边界处截断。

这里有什么问题?

0 投票
1 回答
771 浏览

iphone - 在为其超级视图设置动画时更改 UILabel 的文本

是否可以更改 UILabel 的文本,而它的超级视图正在由 UIView 动画进行动画处理?

假设我有 labelView 作为 containerView 的子视图。timerFired 在 containerView 动画期间被调用(从不在之前或之后)。我在动画期间调用 labelView 的 setText,但它的文本没有改变。有什么办法可以实现我所追求的吗?

编辑:我的错 - 这有效。问题在于我的文本更新程序(投射问题)。

0 投票
1 回答
771 浏览

objective-c - 如何替换出现的 CALayer 的自定义动画

我有一个 CALayer,我想更改它出现在屏幕上的自定义动画。我创建了一个委托,以便我可以捕获该方法:

我检查了密钥是否等于 kCAOnOrderIn,但是,尚未告知该层它的边界是什么(它当前报告边界的 (0, 0, 0, 0))。所以然后我尝试检查键是否等于“边界”,但我仍然得到报告相同的矩形(0、0、0、0)。

我想要做的动画不是图层通过不透明度逐渐“淡出”到屏幕上,而是希望它从小到中间生长到屏幕上,直到它的完整边界。但要做到这一点,我需要知道它的完整界限是什么。无论如何都知道这样我可以替换自定义动画,还是我只是以错误的方式接近这个?

谢谢