问题标签 [catransform3d]

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

cocoa - CATransformLayer:自动调整子层以填充边界?

有没有办法让子层自动缩放以填充动画时CATransformLayer的边界?CATransformLayer我已经尝试过设置autoresizingMask属性并使用CAConstraintLayoutManager,但似乎都没有任何效果。

我想这样做的原因是因为我在 CATransformLayer 上进行 3D 旋转 + 放大动画,而放大不起作用,因为子图层在动画时没有缩放以填充边界。

0 投票
2 回答
1438 浏览

core-animation - CATransform3D 行/列顺序

我对 CATransform3D 结构的矩阵行/列顺序有些困惑。该结构定义了一个这样的矩阵:

起初,这些值似乎定义了行(因此 [m11 m12 m13 m14] 形成第一行),但是当您通过 (tx, ty, tz) 创建平移矩阵时,矩阵将如下所示:

我的困惑来自于这不是一个有效的翻译矩阵。将它与 4 元素列向量相乘不会转换该点。

我的猜测是 CATransform3D 结构按列顺序存储值,因此值 [m11 m12 m13 m14] 形成第一列(而不是第一行)。

任何人都可以确认吗?

0 投票
1 回答
756 浏览

cocoa - 对所有 CALayer 元素应用相同的透视和旋转(与 Coverflow 不同)

我正在尝试模拟架子中 CD 的外观。当您看书架时,每张 CD 都应该从一个非常类似于书籍的角度可见。我使用核心动画转换。问题是结果看起来像 Coverflow,即元素看起来会根据它们在屏幕上的位置而有所不同。

这是它的实际外观以及我希望它看起来像的屏幕截图:

它看起来像什么,它应该是什么样子

我使用了 CALayers 并应用了两个基本的转换:

1) 旋转:

2)添加视角:

如何将相同的转换应用于所有图层并让它们看起来都一样?Core Animation 是适合这项工作的工具吗?

谢谢,马克。

0 投票
3 回答
7835 浏览

iphone - CATransform3D 旋转导致一半图像消失

我正在使用以下代码来旋转图像,但是已经旋转“离开”页面的一半图像(沿着 y 轴)消失了。怎么修?heading以弧度为单位。

0 投票
1 回答
435 浏览

objective-c - 完成缩放转换后,子视图被其父视图剪裁-Objective C

我的项目涉及屏幕中的 4 个独立视图。在这种情况下,苹果文档说明我们只有一个视图控制器和 4 个 NSObject来控制不同的视图。我没有使用界面生成器来创建视图和 NSObject,我没有以编程方式声明。在其中一个视图中,我使用 imageview 作为子视图加载了所有图像。

我想做的是尝试一些类似于mac os dock的动画。触摸时放大。

问题是当我在触摸视图时缩放图像时。我使用了 CATransform3dMakeScale。我的图像视图被父视图剪辑。你能帮我解决这个问题吗?我想我一定错过了一些标志。

我尝试了 clipstobounds,并调整了标志的大小。没有任何效果。

我怀疑问题是否可能是由于以下原因,但我不知道如何调试它

1) 因为我创建 NSObject 时没有使用 viewcontroller。我是否错过了在 loadView 或 init 方法期间自动设置的任何标志。2)我也怀疑我使用 NSObject 的方式是否正确。

谢谢

0 投票
2 回答
2974 浏览

iphone - CATransform3d 一个 UIButton

我似乎无法获得一个简单的 3d 转换来处理按钮,并且文档似乎没有帮助。我从一个基于视图的应用程序模板开始。我添加了 QuartzCore 框架并将其导入到 ViewController 标头中。在界面生成器中,我拖出两个圆形矩形按钮并将它们分别连接到 button1 和 button2,并将它们都连接到 buttonPressed: 方法。

注释掉动画的快速运行验证只有单击的按钮会更改其标签。

回到动画后,“sender.transform = t;”上的“setTransform:”参数 1 出现错误类型不兼容 行(现在固定行更改为 [sender.layer setTransform:t];)

如何让它旋转 360 度。我认为问题在于开始和结束状态是相同的,所以它不知道在任何地方旋转。

这是.h,(出于格式原因,我在这篇文章中省略了导入)

和 .m 文件

0 投票
5 回答
7130 浏览

iphone - 使用 CATransform3D 透视的折纸过渡

我正在尝试仅使用图层功能在两个 UIView 上实现一种折纸过渡。这个想法是折叠两个具有透视效果的视图。两个视图都有一个透视图,过渡由每个视图上的旋转定义,以及一个视图上的平移,这样该视图似乎附加到另一个视图。

问题是视图在过渡过程中相互重叠。我不想使用 zPosition 在视觉上避免这种重叠,我真的希望这两个视图表现得好像它们被共享的一面绑定在一起。这是过渡的代码。

任何想法,或任何其他解决方案?

过渡期间的重叠视图

为了简化问题,让我们摆脱任何透视变换。这是具有相同问题的更简单的代码:

0 投票
1 回答
3460 浏览

core-animation - 如何获得转换后的 CALayer 的实际大小?

我有一个200x200 pixel CALayer实例,我对其应用了两个转换:

  • 缩小到 50%
  • 应用了 3D 透视图

现在我想将转换后的图层与另一图层对齐。为此,我需要转换层的大小(宽度和高度)。

问题是图层layer.bounds仍然返回200x200,但由于透视变换,实际可见宽度小于 ,高度大于200。顺便说一下,表示层的边界 return 0

有什么办法可以确定转换后的确切大小,CALayer就像它在屏幕上绘制的那样?

0 投票
2 回答
4015 浏览

iphone - 使用 CATransform3D 创建翻转动画

我正在尝试重新创建 UIViewAnimationTransitionFlipFromRight (和左)。我这样做的原因如下图所示,是在动画中间,当图层被遮挡时,对 AVCaptureVideoPreviewLayer 进行更改。UIViewAnimationTransitionFlipFromRight 不会让我中途停止动画,进行会话更改并继续,所以这是我最好的镜头。

虽然这可行,但它与 UIViewAnimationTransitionFlipFromRight 不同。图层开始旋转,但更多的是向后和对角滑动(很难描述),然后在动画的第二部分反转。我正在寻找图层的右侧翻转到后面,然后继续向左。相反,右侧从右侧开始,向后旋转,然后再次向右旋转。

我究竟做错了什么?

更新:它第一次正确旋转。之后,上面提到的问题仍然存在。与必须重置的 AVCaptureVideoPreviewLayer 有什么关系吗?不确定,只是猜测。

0 投票
1 回答
8827 浏览

objective-c - 核心动画 - 翻页

我想像 Flipboard 应用一样“弯曲”一个视图。我成功地翻转了整个视图,但没有弯曲它。我的策略是这样的:从我想要弯曲的视图的一半创建一个视图/图层,将其添加到视图并翻转这个新视图。那么:我如何在一个视图/图层中绘制另一个视图的一半?