问题标签 [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.
objective-c - CATransformLayer 不支持隐式动画?
这是我的动画代码:
self.transformLayer
是一个CATransformLayer
有两个子层,一个用于前面,一个用于后面(我正在创建“翻转”效果)。然而,这段代码只是设置了位置和变换,没有动画。所以我认为它可能transform
不支持隐式动画,所以我把它拿出来并尝试设置位置,但这也没有动画(我肯定知道它position
支持隐式动画)。
我做错了什么还是不CATransformLayer
支持隐式动画?该文档没有说明它不支持它,所以我假设它支持它。
编辑:这是 Mac OS X,不是 iOS
ios - 将 OpenGL 转换矩阵转换为在 CATransformLayer 上工作
我一直在为一个项目使用来自 String 的增强现实 SDK 。基本上,这个 SDK 会传回一堆它识别的图像的标记,以及一个关联的 OpenGL 矩阵变换,它勾勒出标记图像在 iPhone 相机视图内的 3D 空间中的位置。我想要做的是将 a 映射CATransformLayer
到场景中,以便它在标记图像上正确显示并在其位置播放视频。我认为我可以使用 aAVPlayerLayer
内的 a来执行此操作,该 a 应用CATransformLayer
了矩阵变换(转换为 a CATransform3D
)。
尽我所能,这并不是特别好——我似乎无法在原始 OpenGL 矩阵和CATransform3D
.
您可以看到在标记变换和CATransform3D
对象之间进行直接转换非常混乱(蓝色位是我的图层):
我认为它们是相同的(由于CALayer
GL 的支持,我曾多次被告知它们是相同的)。这是真的?我错过了什么吗?
我可以退回来将我的视频作为纹理渲染到场景中,但如果可能的话,保持高水平会很棒——有什么想法/评论/想法吗?
iphone - UIView 3DCube like Clear-app
我已经搜索了 google 和 stackoverflow 上的所有帖子,但我根本无法解决这个难题。我正在尝试重现现在著名的待办事项应用程序“清除”在添加新任务时的效果。他们有某种动画,从顶部开始,新任务会以某种 3D 立方体效果出现。他们的特别之处在于,当你仔细观察时,左右下角总是保持在同一个地方。
现在我有以下内容:一个 320x460 的 UIView 设置在点 0,0 和一个 320x460 的 UIView 设置在点 (0,-460)。我想要的是顶部 UIView 以与从顶部清除相同的立方体效果下降。这是我到目前为止所拥有的:
}
它以某种方式工作但不正确,一旦我进行旋转,视图就会变大,左下角和右下角不在视图中。如果我缩小视图然后做一个 3Dscale 它也搞砸了。我已经通过正确设置图层的 zPosition 解决了一半图像消失的问题,但这是我所得到的。我尝试使用其他项目的代码,但它们的所有 3D 立方体效果都与“清除”应用程序不同。唯一接近的是 iCarousel 项目,但我无法使用应用程序中的正确代码,我无法让它工作。有人能帮我吗?
iphone - 如何将 3d 视图旋转 360 度?
我正在开发一个应用程序,其中我将视图旋转 360 度,但我无法将其旋转 360 度。它旋转了 180 度,旋转后又回到了原来的位置。
换句话说,它正在来回旋转。如何连续旋转它......请帮助......
ios - 在 iOS 上,为什么设置图层的 sublayerTransform 会变成像 CATranformLayer 一样的行为?
众所周知,zPosition
层数只决定了哪一层覆盖哪一层。无论是zPosition
10 还是 1000 都不会影响其位置。
也就是说,除非我们使用CATransformLayer
包含那些图层,否则zPosition
这些图层的 将影响图层的位置。
但是,在 iOS 5.1.1 中运行的以下代码确实会zPosition
改变图层的位置...您可以在新的 Single View App 中尝试,并将以下代码添加到ViewController.m
. 如果 的zPosition
由layer2
变为88
,188
我们可以看到图层相应地移动。所以CATransformLayer
代码中没有;为什么会这样?(请引用 Apple 文档或任何参考资料)。
同样相关的是,如果将线self.view.layer.sublayerTransform = transform3D;
更改为,self.view.layer.transform = transform3D;
则zPosition
将不会影响位置。但根据 Apple 文档,transform
仅sublayerTransform
在 self 是否被转换方面有所不同:
两个层属性指定变换矩阵:
transform
和sublayerTransform
。由 指定的矩阵transform property
应用于层及其相对于层的子层anchorPoint
。[...]该sublayerTransform
属性指定的矩阵仅应用于图层的子图层,而不是图层本身。
所以奇怪的是,为什么改变它会导致表现self.view.layer
得像CATransformLayer
.
animation - 如何设置 CATransformLayer 动画旋转中心
我有一个带有它的底层的视图,我在视图的层中添加了一个CATransformLayer:
[view.layer addSublayer:transformLayer];
我添加的图层包含代表几个 3 维块的各个侧面的各种子图层。我想将动画应用于图层以旋转块。
问题是图层大致围绕前角而不是立方体的中心旋转(例如,见下文)。
A/B 标签应移至 1/2 位置,或 1/2 应移至 A/B,具体取决于旋转方向。相反,它从第一个图形改变,大致围绕前角旋转,导致与其他图形接近。上部未标记的块处于不同的视图中并且是静态的,因此不是旋转的一部分。较低标记的块位于我要设置动画的视图/图层中。
如何更改旋转中心以达到我想要的结果?
我已经为各个层弄乱了anchorPoint、zPosition、anchorPointZ,但没有成功。也尝试过setSublayerTransform,setTransform。
我应该弄乱块侧子层、变换层、视图层或视图本身的设置来实现我所追求的吗?
任何指导或方向将不胜感激。
iphone - CATransform3DTranslate 之后的 CATransform3DRotate
我正在尝试制作一个折叠式 facebook 菜单,就像您在这里看到的那样:http ://www.mobileinc.co.uk/2012/05/folding-iphone-sidebar-menu/
目前,我正在研究“折叠”部分。我有 2 层: - 左层在 {1,.5} 有一个锚点 - 右层在 {0,.5} 有一个锚点
我可以让它们在我的主视图中间折叠而不会出现这样的问题:CGFloat width = self.view.frame.size.width; CGFloat destinationWidth = slider.value * width;
这完美地工作。当我尝试像这样在 x 轴上平移我的图层时,问题就来了: CATransform3DTranslate(transform,-marginLeft,0,-opposite)
图层仍然以良好的 z 平移折叠,但它以一个尴尬的角度结束,就好像整个视图已经旋转了一样。
这显然与视角有关(当我不设置 m34 时,它“有效”)但我不知道如何补偿它......
先感谢您!
干杯,
TeuBeu2
iphone - 识别 3d 立方体特定侧的触摸
立方体由 6 个 CALayer 组成,然后将它们添加到单个 CATransformLayer。这个 transformLayer - 以及它,立方体 - 可以使用触摸输入旋转。
问题:我希望能够识别用户触摸了立方体的哪一侧。
我试过这段代码:
但立方体似乎被映射到二维空间:当我触摸第 1 面时,不仅可以识别第 1 面,还可以识别它后面的面(例如第 4 面)。
如何确保只选择离用户较近的一侧(较高的 z 坐标)?
ios - 使用 CATransformLayer 警告:在仅变换层中更改属性 opaque 将无效
我创建了一个“ TransformView
”子类UIView
以支持我在翻转动画中使用的双面视图。这已在其他帖子中提出,例如:
一切正常,但每次我使用以下方法创建 TransformView 对象时都会收到警告:
警告说:
- 在仅变换层中更改属性不透明,将无效
我猜这个UIView
类正在初始化 opaque 属性,这通常适用于 aCALayer
但不是 a CATransformLayer
。
子类化代码很狡猾吗?如果是这样,您还能如何为翻转动画创建 2 面视图?
关于如何停止警告的任何想法?
我怀疑TransformView
从 nib 文件创建一个而不是initWithFrame
避免警告,但为了避免警告而不得不这样做似乎很笨拙。
core-graphics - 在哪里可以找到 CATransformLayer 示例和文档
有什么地方可以阅读关于 CATransformLayer 的好教程吗?
Apple 的文档似乎对此非常简短。