- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个自定义CALayer
,我使用CAAnimationGroup
对其进行动画处理,以遵循路径并以与路径相切的方式旋转:
// Create the animation path
CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
pathAnimation.calculationMode = kCAAnimationPaced;
pathAnimation.fillMode = kCAFillModeForwards;
pathAnimation.removedOnCompletion = NO;
//Setting Endpoint of the animation
CGRect contentBounds = [self contentBounds];
self.boatLayer.bounds = contentBounds;
CGPoint endPoint = CGPointMake(contentBounds.size.width - 150, contentBounds.size.height - 150);
CGMutablePathRef curvedPath = CGPathCreateMutable();
CGPathMoveToPoint(curvedPath, NULL, startPosition.x, startPosition.y);
CGPathAddCurveToPoint(curvedPath, NULL, endPoint.x, 0, endPoint.x, 0, endPoint.x, endPoint.y);
pathAnimation.path = curvedPath;
pathAnimation.duration = 10.0;
pathAnimation.rotationMode = kCAAnimationRotateAuto;
pathAnimation.delegate = self;
// Create an animation group of all the animations
CAAnimationGroup *animationGroup = [[[CAAnimationGroup alloc] init] autorelease];
animationGroup.animations = [NSArray arrayWithObjects:pathAnimation, nil];
animationGroup.duration = 10.0;
animationGroup.removedOnCompletion = NO;
// Add the animations group to the layer (this starts the animation at the next refresh cycle)
[testLayer addAnimation:animationGroup forKey:@"animation"];
我需要能够跟踪图层沿着路径前进时的位置和旋转的变化。我已经覆盖了 setPosition
和 setTransform
(调用 super setPosition
和 super setTranform
),然后记录它们的值。这两个值似乎都没有在动画过程中设置。
如何在 CALayer
类本身动画时获取位置和旋转更新?
最佳答案
对不起。这不是核心动画的工作原理。当您将动画添加到图层时,它不会更改该图层的模型。仅演示。
当您将动画配置为在完成后不自行删除时
yourAnimation.fillMode = kCAFillModeForwards;
tourAnimation.removedOnCompletion = NO;
您实际上导致了屏幕上显示的内容与该层模型之间的不一致。例如,如果您有一个像这样设置动画的按钮,您会因为它“不再响应触摸器”或更有趣的“响应来自其‘旧’位置的触摸”而感到非常惊讶/愤怒。
根据您实际需要更新的内容和频率,您可以在动画期间定期检查 presentationLayer
的值,或者使用 CADisplayLink
在动画播放时运行一些代码屏幕发生变化。
关于ios - 动画期间未调用 CALayer setPosition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15618517/
两种方法实现: public void setPosiotion(int x, int y) { //do nothing } public void setPosiotion(Point point
任务:从 mpeg2 视频文件中抓取任意帧。 现在我使用自定义渲染过滤器进行抓取,但在所需帧上定位视频时出现问题。 我使用 SetPosition(),在 Pause() 通过图形传递帧之后,等待过滤
这里是一个代码:http://jsfiddle.net/QQaZp/1/ var setPosition = function() { $('div').css('top', ($(wind
我尝试了以下代码,但是当我第二次单击 mMan1 将其从 520 移动到 422(x 中)时,它什么也没做(当我第一次单击时,setPosition 工作正常)。 \\ in onCreate
我有一个自定义CALayer,我使用CAAnimationGroup对其进行动画处理,以遵循路径并以与路径相切的方式旋转: // Create the animation path CAKeyf
我在图标中使用 svg 符号,问题是当我使用 setPosition 时, map 上的图标或标记在标题更改时不会旋转。但是如果我更改为 setMap(map) ,它将更改标题,问题是图标或标记会再次
我在使用 KineticJS 时遇到了一些麻烦。 从我的fiddle可以看出,我能够在我的放置事件中访问 Shape 对象(框),以获得 x,y 坐标,并且我正在对它们执行数学运算以获得我想要将形状“
我有一个将对象放入屏幕的循环。但出于某种原因,一些对象虽然在 printf 中打印了正确的坐标,但在 (0,0) 点,就好像他没有完成设置它的位置一样。 for (int i =0 ; i getPh
我在顶部的图层中有一个拇指 slider 和一个 Slick slider ,通过带有 display:none 的 css 隐藏。在点击事件上我调用了 setPosition 但它不起作用(
我在顶部的图层中有一个拇指 slider 和一个 Slick slider ,通过带有 display:none 的 css 隐藏。在点击事件上我调用了 setPosition 但它不起作用(
我正在创建要导出到 Excel 的图表。我需要创建多个,因此我将使用带有 4 个参数的 SetPosition() 方法来抵消它们: SetPosition(int row, int rowoffse
所以我在玩弄 KineticJS,我在制作一个按钮时遇到了一些问题。我想让它做的就是在我单击它时重置我的对象的位置。 我已经创建了按钮,设置了 onclick 处理程序以指向我创建的函数(并包含在 H
在我正在开发的一个应用程序中,根据车辆的最后已知速度,我每 100 毫秒插值一次车辆的下一个位置,并将其绘制在 map 上。这会导致移动设备出现性能问题。 我们还使用 MarkerWithLabels
我很高兴改进我的 C++ 程序,我通过 directshow 阅读视频。现在我也试着写视频,效果也很好。 然后是寻找合适的编解码器(考虑了 vob/ogg)... 但是,今天突然间视频显示的很慢。 现
问题的简单版本: 如何使用 setPositions 字段创建 EKRecurrenceRule 对象? 较长版本的问题: 我在我的应用程序中使用以下代码创建了一个带有 EKRecurrenceRul
本文整理了Java中com.facebook.yoga.YogaNode.setPosition()方法的一些代码示例,展示了YogaNode.setPosition()的具体用法。这些代码示例主要来
在 v4 中,如果您使用 AKPlayer带循环和使用 setPosition API,播放器在 setPosition 设置的位置之间循环和球员的总持续时间。我需要的是从setPosition设置的
我有一个 html 页面,它使用 Firebase 来获取更新的地理位置数据。然后该数据用于更新谷歌地图中的标记。 map 在笔记本电脑上的 Chrome 浏览器中工作正常( map 渲染,标记相应移
所以我的代码遇到了问题,我尝试从从数据库下载的变量设置谷歌街景位置。它的数据库和 php 端可以工作,但是当我尝试将其分配给“panorama.setPosition(prizeLocation);”
我正在尝试根据平移手势移动一组 CALayers。 我正在使用此代码: -(void)handlePanFrom:(UIPanGestureRecognizer *)recognizer {
我是一名优秀的程序员,十分优秀!