问题标签 [core-animation]

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

iphone - 将 UIWebview 内容转换为 UIImage

我正在使用 UIWebView 来显示 HTML 格式的文本。我没有加载网页,只是向 UIWebView 提供一串 HTML。

现在我想在屏幕上为这个 UIWebView 设置动画,实际上是其中的几个(一次 2-10 个)。UIWebView 有点重,虽然我还没有尝试过,但我正在做最坏的打算。(我不认为这是过早的优化,我几乎肯定这将是一个问题)

为了解决这个问题,我想我可以将 UIWebViews 的内容转换为 UIImages 并为它们设置动画。

所以,我的问题是:

  1. 如何将 UIWebview 内容转换为 UIImage(或 CGImageRef)?
  2. 我的 UIWebViews 有透明的 bacgrounds,透明度会传递到 UIImage 吗?

感谢您的任何建议

0 投票
2 回答
9670 浏览

ios - 移动 UIImageView

沿着点阵列移动图像的最佳方法是什么?

0 投票
1 回答
2245 浏览

objective-c - 核心动画锚点被忽略?

这段代码:(self 是 NSView 的子类)

应该围绕它的中心旋转我的层。我已将锚点设置为 (0.5, 0.5),但视图仍围绕其原点旋转。怎么会出现这种情况。我用谷歌搜索无济于事,所以我确定这可能是我错过的一些非常简单的事情......

NSLog 似乎报告了正确的值。第一个报告 (0, 0) 和第二个 (0.5, 0.5)

0 投票
2 回答
30581 浏览

iphone - 带有子视图的 UIView beginAnimations

我有一个漂亮而简单的“缩放”视图动画,它以一个点开始并动画到全屏大小:

到目前为止,一切都很好 :-)

问题是当我将子视图添加到 myView 时,令我惊讶的是,它们不遵循其父视图的动画方案!?!?

顺便提一句。子视图当前像往常一样添加到 MyView 的 initWithFrame 中。我试图将他们的转换属性设置为 CGAffineTransformIdentity 但它没有帮助。

那么,需要做些什么来让 myView 的子视图与它的父视图一起以漂亮的“缩放”方式进行动画处理?

提前致谢!
/约翰

0 投票
3 回答
300 浏览

iphone - 是否可以同时拥有多个动画代表?

我担心这是不可能的,因为 UIView 的 +setAnimationDelegate: 是一个类方法。但也许我错了?

背景:问题是,我有很多同一个类的对象,我想实现一个方法,专门为那个对象做一些漂亮的动画。这些动画有点复杂,由几个阶段组成。所以我需要在动画停止时得到通知。现在,该类中的 10 个对象可能会同时开始动画。

0 投票
3 回答
1456 浏览

iphone - 我可以在 UIView +beginAnimations:context: 的 context 参数中设置什么样的值?

我不明白这一点:

(void *) ----> 我可以在这里提供什么样的数据?

0 投票
2 回答
784 浏览

macos - 核心动画代码结构/约定

在学习 Core Animation 的过程中,我很快就了解到,如果你做得不对,你会得到非常奇怪的未定义行为。为此,我有几个问题可以帮助我在概念上更好地理解它。

  • 我的 NSView 子类在它的 init 中声明了以下内容。该视图是普通层支持视图的子视图。

    在此之后,我应该在什么时候以及在什么情况下使用 self 而不是 [self layer]?我一直只使用显式和隐式动画来操作图层,远离 [self setFrame:] 等并使用 [[self layer] setPosition] 等。

  • 这种方法的问题在于,视图的实际帧在任何和所有应用的动画中都停留在一个位置。如果我的视图应该接收鼠标事件怎么办?例如,我有一个使用核心动画的视图,它被鼠标拖动。有没有办法让视图框架与表示层的当前状态保持同步,以便接收正确的鼠标事件?

  • 关于表示层,显然它仅在实际动画正在进行时才可用。是否有任何类型的图层属性可以告诉我它实际上在视觉上的位置,即使动画没有在进行中?

0 投票
1 回答
630 浏览

iphone - 如何在 Core Animation 的每一帧上获得通知?

我有一个 iPhone 程序,它由许多位于UIView另一个之上的 s组成UIView,并且可以移动。我正在使用包含的方法在UIViews之间绘制连接。这一切都很好。drawRect:UIView

唯一的问题是,当我使用动画移动视图时,背景不会刷新。我曾尝试对视图的属性使用键值观察,但在动画期间它们发生变化时我没有收到通知。

有什么方法可以UIView在动画运行时使我的包含重绘?

0 投票
3 回答
2621 浏览

iphone - 如何在 iPhone-OS 中终止正在运行的动画?

我有一个类“Cube”,其中有一个方法-rotate。该方法将anchorPoint设置在左下角,然后将立方体旋转90度。之后,调用另一个方法,使立方体向后旋转 -90 度。完成指定停止选择器。顺便说一句:这没有特殊目的。刚学!

-rotate 在触摸事件时被调用。但是现在,当立方体对象仍在旋转时,假设它当前位于 33.943...,用户可能会在该动画完成之前进行另一个触摸事件。

然后,此触摸事件将立即再次调用 -rotate 方法。发生的情况是,变换重叠,立方体图像被完全拉伸和变形。

所以在新动画开始之前,当前正在运行的动画必须停止。

更新

在我开始动画之前,我称之为:

另外,我设置了 [Cube setAnimationBeginsFromCurrentState:YES]; 我开始动画块的任何地方。

所以,当一个动画从外部启动时,会是这样的:(注意,屏幕上这个类的对象有5个,可以踢动)

现在它似乎几乎可以工作了。如果动画开始重叠,立方体不再变形。但还有一点是错误的:如果有一个新的“踢”进来,并且立方体正在向后旋转,它应该立即开始向右旋转。但碰巧它首先旋转回来,然后识别出那个“踢”,看起来很奇怪;)

0 投票
2 回答
6946 浏览

objective-c - 像 Mobile Safari 一样在其选项卡中淡入/淡出 UIScrollView 的内容

注意:我在下面的更新答案中添加了我的新解决方案。

我尝试重现我们在 iPhone/iPod touch 上的 Mobile Safari 选项卡中看到的效果。

基本上,它是一个 UIScrollView,它拥有 4 个可重用的 UIView(充当环形缓冲区),并水平滚动。滚动时,UIView 的不透明度将通过偏移无缝淡入/淡出。

目前,我在- (void)scrollViewDidScroll:(UIScrollView *)scrollView. 比如从 UIScrollView 中获取 contentOffset,确定分页,计算 contentOffset 和每个 UIView 位置之间的 delta,决定/设置每个 UIView 在scrollViewDidScroll:被调用时的 alpha 值。

它可以工作,性能还可以,一切运行顺利,但唯一的问题是计算量太大。

我试过UIView的beginAnimations:and commitAnimations:,但是在里面没用scrollViewDidScroll:,因为1)新的alpha值还是要自己计算,2)scrollViewDidScroll:滚动的时候一直调用,这里做动画没意义。有没有办法用 Core Animation 重写这部分?所以我不必自己计算每个 UIView 的 alpha 值,相反,我可以将整个作品留给 Core Animation。