首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用核心图形绘制的核心动画

使用核心图形绘制的核心动画
EN

Stack Overflow用户
提问于 2009-01-14 08:58:04
回答 2查看 4.8K关注 0票数 2

我在一个UIView子类(下面代码中的CustomView)中。

我在一个UIImageView子类(containerView)中的图像周围绘制了一个边框。它的核心图形代码位于子类的drawInRect:中。

核心动画过渡是一个翻转,但是当它被绘制时,核心图形代码没有被使用,也就是说,不会调用drawInRect:来为CALayer提供我渲染的图像。

取而代之的是,我从一个图像到另一个图像的动画没有发生任何核心图形绘制。

如何允许CALayer使用我的核心图形绘图而不是原始图像进行动画处理?

代码语言:javascript
复制
[CustomView beginAnimations:@"transitionNextImage" context:nil];
[CustomView setAnimationDuration:2.0];
[containerView setImage:image];
[CustomView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:containerView cache:YES];
[containerView setImage:differentImage];
[CustomView commitAnimations];
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-01-14 11:20:08

你实现的是drawRect:,而不是drawInRect:,对吧?此外,您是否验证了在此过渡之外,它实际上是有效的?

你能粘贴你的drawRect:实现吗?我只是担心UIImageView直接设置它的层的内容,而不是依靠drawRect:来做,这将意味着你的drawRect:不能工作。

事实上,考虑到这实际上是多么简单,我建议您只创建UIView子类而不是UIImageView子类。在缩放图像以进行绘图时,保留宽高比的数学方法非常简单。

当然,另一种选择是子类化UIImageView,然后覆盖setImage:,在第一个图像的基础上创建一个新图像,但在第一个图像周围绘制一个边框,然后将其传递给super.这样一来,你根本就不需要对drawRect:做任何事情。

票数 2
EN

Stack Overflow用户

发布于 2009-01-15 08:09:16

好吧,是的,我实现了drawRect:,是的,我的绘图在转换之外工作。

问题是UIImageView子类中的drawRect:没有被绘图的CALayer调用。

因此,当我将这个子类的父类切换到UIView时,为图像实现了我自己的属性,并调整了动画-所有的东西都在一起。

上面代码中动画的containerView被更改为一个普通的UIView实例。动画代码必须稍作修改,以适应以下情况:

代码语言:javascript
复制
[CustomView beginAnimations:@"transitionNextImage" context:nil];
[CustomView setAnimationDuration:2.0];
[containerView addSubview:aViewSubclass];
[CustomView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:containerView cache:YES];
[aViewSubclass removeFromSuperview];
[containerView addSubview:anotherInstanceOfTheViewSubclass];
[CustomView commitAnimations];

例如,来自苹果关于这些类型的转换的文档:

如果要在过渡期间更改视图的外观(例如,从一个视图翻转到另一个视图),则使用容器视图,即UIView的实例,如下所示:

  1. 开始一个动画块。
  2. 在容器视图上设置过渡。
  3. 从容器视图中删除子视图。
  4. 将新的子视图添加到容器视图。
  5. 提交动画块。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/442326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档