Tag: 核心animation

animation不适用于iPad。 同样的作品在iPhone上

我有一个非常简单的项目,试图使用基于块的iOS4.0animation制作UIViewanimation。 头 @interface animatepadViewController : UIViewController { UIView *contentView; } @property(nonatomic, retain) IBOutlet UIView *contentView; @end 履行 // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. – (void)viewDidLoad { [super viewDidLoad]; [UIView animateWithDuration:1.0 animations:^{self.contentView.alpha = 0.0;}]; } 我在界面生成器中添加了UIVIewtypes的子视图,背景颜色为黑色。 这些是我从默认的基于ipad“view”的项目中唯一的改变。 我得到以下错误 2010-12-28 17:59:05.689 animatepad[29835:207] *** +[UIView animateWithDuration:animations:]: unrecognized selector sent […]

我如何在iPhone开发中使这个animation效果? Quartz2d,核心animation?

我想做的是一个animation越来越大的酒吧,文字(数字)也随着酒吧长度的增长而增长。 看起来像: 酒吧应该是水平增长,与数字的文字也应该增长。 并且用户可能想要通过点击“重放”来再次播放animation。 阅读苹果编程指南和一些伟大的教程后,我有一个大致的想法。 使用Quartz2d,我可以绘制条和垂直线,也可以绘制文本。 但是Quartz2d没有animation效果。 使用Core Animation,我可以通过时间和指定的属性值来改变条的形状。 我对吗? 所以我想我想要的是结合Quartz2d和Core Animation,先用Quartz2d绘制条形图然后用CA来animation吧? 这是做到这一点的正确方法吗? 或者,如果有任何其他轻量级解决scheme,我将不胜感激。 PS:我对iPhone的绘图很新,据我所知,做animation的最轻的方法是通过UIViewanimation,更轻的是通过CALayeranimation。 而整个绘图工作是由Quartz2d,我正确吗? 即使阅读了这篇文章,这也是令人困惑的 。 但要实际操作,我不(或不能)对整个graphics系统有太多的概念。 但是在写下一些关于这个的实际代码后,我一定会继续挖掘。 所以,现在我只需要知道这是否是实现这个animation效果的最好方法。 多谢你们 :)

SceneKit Rigged Character Animation增加性能

我有*.DAE文件,每个字符有45-70个骨头,我想在屏幕上有大约100个animationangular色。 但是当我有60个人物的时候,animation需要13ms的更新循环,这个代价非常昂贵,并且让我几乎没有其他任务的余地。 当我想要交换animation时,我将animation“CAAnimationGroup”设置为网格SCNNode 。我将fadeOut设置为0.2并添加新的FadeIn设置为0.2的animation,以删除以前的animation。 – >这不好吗? 我应该暂停一个以前的animation,并播放一个新的? 还是更糟? 有没有更好的方法来animation在SceneKit操纵angular色可能使用GPU或其他? 请让我开始正确的方向,以减less更新循环中的animation开销。 通过Bug雷达联系Apple后更新我通过电子邮件收到了这个问题: 这个问题正在努力修复在未来的更新,我们会让你知道,只要我们有一个testing版本,你可以testing和validation这个问题。 感谢您的耐心等待。 所以让我们拭目以待苹果工程师将会加强它:)

CAShapeLayer在animationSwift中检测触摸

我可以检测到这样一个CAShapeLayer触摸(touchesEnded): let touchLocation : CGPoint = (touch as! UITouch).locationInView(self.view) for shape in shapes{ if CGPathContainsPoint(shape.path, nil, touchLocation, false){ print("Layer touch") } } 而且我可以像这样animation化一个CAShapeLayer的path: let newShapePath = UIBezierPath(arcCenter: toPoint, radius: 20, startAngle: CGFloat(0), endAngle: CGFloat(M_PI * 2), clockwise: true).CGPath // animate the `path` let animation = CABasicAnimation(keyPath: "path") animation.toValue = newShapePath animation.duration = CFTimeInterval(duration) animation.timingFunction = […]

创build自定义Segue的正确方法

现在,是的,有数百个关于如何执行自定义赛段的问题(和答案)。 然而,我并不夸张,所有这些答案都是错误的(所有50+我见过)! 对不起,这可能听起来很刺耳,但事实是,没有任何build议的答案给出了与转换中build立的苹果(垂直覆盖等)相同(正确)的结果。 更具体地说,这是预期的结果(通过日志确认): Segue开始(增加层次结构的视图,在sourceVC上调用viewWillAppear ,在sourceVC上调用viewWillAppear并启动animation)。 animation是在整个过程中执行的 Segue结束(animation完成,将目标VC设置为当前VC,无论是在堆栈中还是模态呈现。在sourceVC上调用viewDidAppear ,在sourceVC上viewDidDisappear 。 总之: 调用viewWillAppear/Disappear – >animation转换– >调用viewDidAppear/Disappear 使用苹果内置的赛段,这是预期的行为,但不知何故,除了我以外没有一个灵魂有这个问题。 许多版本甚至将目标视图作为子视图添加,然后再将其移除并调用 [srcVC presentModalViewController:destVC animated:NO]; 要么 [srcVC.navigationController pushViewController:destVC animated:NO]; 导致视图事件以各种随机顺序发送(与CoreAnimations相同的问题)。 在我的情况下,我真正想要的是“垂直覆盖” – 转换恢复(从上到下),所有其他事件发送如预期一样(如上所示)。 那么,我是否应该忍受各种丑陋的解决方法(在我需要的硬编码方法中执行我的“任务”等等),还是有一些以可重用的方式隐藏的正确方法? 有趣的事情:即使苹果build议你这样做“错误”的方式 ,使得它看起来像正确的方式,但与他们自己的方式相比,不一致的结果…所以我最好的猜测是,苹果在引擎盖下做这个,忘了给足够的灵活性,以执行相同的操作(换句话说,大缺陷)的客户端,或者我只是在一些不好的旅行,看到一些不存在的问题…

我怎么能打字检查CGColor / CGPath?

所以看起来有一个与CoreFoundationtypes有关的swift的提交错误 。 根据描述,看起来没有CGPath和CGColor的types检查,下面是从错误中演示的行为的片段。 func check(a: AnyObject) -> Bool { return a is CGColor } check("hey") –> true check(1.0) –> true check(UIColor.redColor()) –> true 这就是我想要做的 if let value = self.valueForKeyPath(keyPath) { if let currentValue = value as? CGColor { // Do Something with CGColor } else if let currentValue = value as? CGSize { // Do […]

如何获得项目的坐标,而它是animation?

我可以像这样在屏幕上制作一些animation: aView.frame = CGRectMake(100,100,50,50); [UIView animateWithDuration:25.0 delay:0.0 options:UIViewAnimationCurveLinear animations: ^{ aView.frame = CGRectMake(200,100,50,50); } completion:^(BOOL finished) { aView.hidden = YES; } ]; ..但是如何获得物品在animation时的位置? 如果我把一个button在屏幕上,并使用此操作 -(IBAction)buttonTapped:(id)sender { NSLog(@"x pos:%f", aframe.origin.x)l } 那么我所得到的就是 x pos:200.00 ..这是该项目的最终位置,但不是目前的。 我如何获得最新的?

我怎么能在viewDidLoad做UIView animateWithDuration? IOS 7

我尝试在viewDidAppear这个,但我有一个延迟=(我能做什么?在viewDidLoad工作? -(void)viewDidAppear:(BOOL)animated{ fullRotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; fullRotation.fromValue = [NSNumber numberWithFloat:0]; fullRotation.toValue = [NSNumber numberWithFloat:((720*M_PI)/360)]; fullRotation.duration = 5; // fullRotation.repeatCount = 1e10f; [_propImaCirculoCompleto.layer addAnimation:fullRotation forKey:@"360"]; }

核心animation的鱼眼效果?

我试图达到类似于ABC新闻iPad应用程序的地球的效果。 ( Google图片示例 ) 通过转换CALayers可以得到这种效果吗? 或者这是使用OpenGL和片段/顶点着色器? CALayer提供了对变换matrix的访问,是否有一些math可以应用于此,而不是转换OGL模型视图matrix? 感觉像OGL是这样做的更复杂的方式,应该有一个更简单的解决scheme。 如果有人有一些想法,非常感谢。 谢谢!

在iOS中的立方体效果滚动tableview单元格?

编写一个用于创build表视图的代码,当用户滚动表视图时,它的行为就像立方体一样。 请在下面findyoutube链接为我所要求的愿景: http://www.youtube.com/watch?v=hrBxHq83yKQ 同时,我试着用CATransform3D transform = CATransform3DMakeRotation(angle, 1, 0, 0); 它的工作原理是在顶部添加一行,而不是滚动。 此外,由于缺乏OpenGLES的知识,我不能用它来通过触摸手势旋转立方体。 请根据您的可行性提出相同的build议。 期待收到你的回复。