问题标签 [catransformlayer]

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 回答
691 浏览

ios - 如何使 CALayer 可点击?

我正在使用 CATransformLayer 创建一堆图层并使用 3D 透视为它们制作动画以制作一个立方体(类似这样)

带有子层的 CATransformLayer

将 UIButton 添加到该立方体的一侧的最佳方法是什么?我希望能够接收事件并从 IBOutlet 访问按钮。

我尝试在我的 XIB 中创建一个带有按钮的 UIView,并将其图层插入 CATransformLayer,它显示但按钮不可点击。我有一种感觉,这是因为 UIKit 处理的是触摸/事件方面的事情,图层只是用来绘制的。

(顺便说一句,我看过这个问题,但觉得这个案例的不同足以保证一个新的帖子)

0 投票
1 回答
775 浏览

catransform3d - 将 CALayers 组合并翻转为 CATransformLayer 的子视图

根据较早的stackoverflow 建议,我正在尝试使用添加到CATransformLayer 的CALayers 创建一张扑克牌。这个想法是创建前后 CALayer 并将它们组合在 CATransformLayer 中,然后可以旋转、翻转等,并自动显示正确的一面。下面是尝试创建一张正面为绿色,背面为红色的单张卡片的示例代码。

红色背面围绕 Y 轴翻转,使其背对绿色正面。绿色前面的 calayer 比红色后面的 Z 位置“更高”。

但是,当我进行转换时,我只是看到卡片似乎处于未翻转状态。有什么想法我在这里出错了吗?

0 投票
1 回答
3887 浏览

ios - 如何在 iOS 中为圆形路径上的标签设置动画?

在我看来,我一直在为 uiLabel 设置动画。

实际上我只想在圆形路径上为我的标签/文本设置动画。我在互联网上搜索了很多,但找不到任何像我的问题一样的好教程或示例。我已经完成了 CAShapeLayer (circle) 从 0 增加到它的最大值....

同样,我希望我的标签/文本从圆形路径中的初始点开始移动,并在完成一圈后返回其初始点。

希望我已经非常准确地解释了我的问题……如果有任何遗漏或无法理解的话。请问我。

感谢期待。

0 投票
2 回答
392 浏览

iphone - 如何在其超层中正确定位 CATransformLayer

我在一个UIView命名的 containerView 上创建了一个跨越整个屏幕的容器视图。在这个视图CATransormLayer上,必须添加一个具有以下尺寸的 UIView。

它们的 x 位置由变量 positionX 指定。理论上两者都DoubleSidedLayer必须stripView重叠。但他们不是。

这是代码。

从日志语句中可以看到 doubleSidedLayer 和 stripView 的帧。

但两者不重叠。这是屏幕截图。在此处输入图像描述

注意:我正在横向工作。

0 投票
0 回答
351 浏览

ios - 使用幻灯片过渡呈现 UIImagePickercontroller

我有一个添加了滑动手势的视图,当用户向右滑动视图时,我必须显示带有幻灯片转换的相机。我不确定如何将幻灯片添加到 UIImagepickercontroller。有人可以告诉如何实现这一目标。在此先感谢

0 投票
0 回答
180 浏览

ios - CATransformLayer 触摸事件处理

我已经在互联网和 Stackoverflow 上进行了搜索,但我找不到这个特定问题的任何答案,所以这是我的问题,

我正在尝试创建一个双面UIView来响应两侧的触摸事件(例如 UIButton、UISwitch 等......)。我通过添加两个不同CALayer的 s 来实现这一点CATransformLayer。一切正常,但触摸不响应从界面生成器添加的 ui 元素。为了重现该问题,我UIView在 nib(frontView) 中创建了一个,添加了界面生成器中的所有 ui 元素,并将该UIView引用添加到CATransformLayer并且一切正常,除了它不响应触摸事件。

我了解CALayerCATransformLayer不继承自. 而且我相信有一种方法可以将此层带到响应者链,但我想知道如何?下面是我的简化问题代码,UIResponderUIView

任何支持将不胜感激。提前致谢。

0 投票
1 回答
160 浏览

calayer - CATransformLayer 和 3D 旋转、威尼斯商店或手风琴之类的,保持瓷砖相邻?

我有一组垂直排列的瓷砖。它们旨在围绕 X 轴旋转。想想手风琴。我希望每个图块 n+1 始终挂在图块 n 上。

在最后两个屏幕截图中,青色瓷砖应该附在黄色瓷砖上。它不是。我不懂为什么。更不用说,为什么当我旋转第 0 行时,我会旋转所有接下来的 5 个图块(这是我想要的),但是当我想通过向另一个方向旋转从稍后的图块开始“纠正”时,我最终会在第三和第四块瓷砖。

供参考,这是设置:

现在我正在创建六个图块,就像普通的 CALayer 一样。

现在,我将每个这样的图块包装到一个父 CATransformLayer 中,然后我将其添加为一行的子层,目的是让每个 CATransformLayer 影响它的每个子层。

在这一点上,我得到了这个:

在此处输入图像描述

我以为我已经搞定了,直到我将最后一行替换为:

这就是我得到的:

在此处输入图像描述

相反,如果我将上面的行替换为:

我明白了:

在此处输入图像描述

我已经阅读并重新阅读了 Apple 的文档,并密切关注这一点:

锚点影响几何操作

图层的几何相关操作相对于该图层的锚点进行,您可以使用图层的 anchorPoint 属性访问该锚点。在操纵图层的位置或变换属性时,锚点的影响最为明显。position 属性始终是相对于图层的锚点指定的,并且您应用于图层的任何变换也相对于锚点发生。

(强调我的)

公平地说,我现在完全糊涂了。任何人都可以看到/解释我做错了什么?

如何排列这些图层,使我的瓷砖始终从上到下相邻?

这是层层次结构的转储:

0 投票
0 回答
134 浏览

performance - CATransformLayer - 设置子层框架时的性能问题

我有一个 CATransformLayer,它有几个子层(CAShapeLayers)。

我将我的 CAShapeLayers 的框架设置为 (512, 512) 的大小。它们的内容(略)小于此。

在 3D 中旋转整个场景时,它会降低帧速率 - 但它可以正确渲染所有内容。

如果我没有设置 CAShapeLayers 的 frame 属性,那么它会以超快的速度旋转 3D 场景,但会出现渲染错误。这些是:

  • 图层以特定角度消失
  • 错误的 z 顺序(一些图层被渲染在彼此之上,应该以相反的方式渲染)

我该怎么做才能获得良好的性能和正确的渲染?

我正在设置形状图层的框架,如下所示:

0 投票
1 回答
234 浏览

ios - 以 3D 形式将 CATransformLayer 渲染为 PNG

我正在尝试将包含多个 CAShapeLayers 的 CATransformLayer 渲染为 png 文件。我知道如何设置基本渲染并且确实有效。

虽然当我在 CATransformLayer 上调用 renderInContext 时,它会将所有内容展平为 2D 并完全忽略我的转换矩阵(旋转和/或透视)。

我该怎么做才能将我的 3d CATransformLayer 及其所有 CAShapeLayers 渲染为 PNG / UIImage?

0 投票
0 回答
543 浏览

objective-c - CATransform3DRotate 的逻辑

我尝试将我的视图转换为类似于图片上的视图:(顶部和侧视图)

在此处输入图像描述

我之前将每个视图添加到视图中(view1 添加了 view2,它添加了 view3)。

我很难找到正确的方法让 view3 像 view1 一样返回相同的角度。

这是我尝试过的:

使用此代码,我的 View3 转角小于 45 度。所以我的问题是:如何以 45 度角从 from2 转到 view3?