问题标签 [uiviewpropertyanimator]

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

swift - 离开应用程序时,Swift UIViewPropertyAnimator 会自动播放

今天是个好日子!

我的应用程序有问题。我正在使用 UIViewPropertyAnimator 为我的模糊设置动画。我让模糊效果从 nil (0) 运行到 .light (1),但由于灯光效果太多,我将 UIViewPropertyAnimator 设置为 0.1 (.fractioncomplete = 0.1)。

这很好用!但问题是,如果您离开应用程序(不是杀死,只是通过按主页按钮或转到另一个应用程序离开),它会自动播放并从 0.1 变为 1。

我认为这是一个错误?我希望有人对此有解决方案。

这里有一些图片:(没有足够的声誉直接发布它们)

0.1模糊的图片

1 模糊的图片

代码:

viewdidload:

模糊动作(需要先启动/暂停,因为苹果的一个已知错误可以唤醒动画师):

提前致谢 !

0 投票
0 回答
1168 浏览

ios - 反转 UIViewPropertyAnimator 会导致帧动画问题

我正在使用 aUIViewPropertyAnimator为 a 的框架设置动画UICollectionViewCell。我查看平移手势识别器的速度,以决定动画师是应该自然完成还是反转并返回到初始状态。

在所有模拟器中,在我的 iPhone 5s 和 6s+ 上,这些动画都完美运行。然而,在我的 iPhone 7+ 上,每当我反转动画时,都会出现奇怪的帧闪烁。请参阅下面的代码以了解我如何执行此操作。在 iPhone 7+ 上的效果是,我一设置reversed = YES然后调用continueAnimationWithTimingParameters:durationFactor:,帧立即跳转到屏幕的完全不同的部分,然后从那里运行反转动画。只有在动画完成运行后,帧才会跳回它应该返回的位置。

我试图取消使用弹簧计时参数,但这并没有什么不同。

这是代码的抽象版本:

0 投票
0 回答
419 浏览

swift - UIViewPropertyAnimator 完成后丢失动画块

我有一个 UIViewPropertyAnimator 来控制加载视图的呈现和关闭动画。

我的加载视图从零的 alpha 和一个比例变换开始,以使其更小。然后,在动画块中,我将此值更改为最终值(1 的 alpha 和恒等变换)。比,在解雇过程中,我将动画师设置为反转。

目前的动画效果很好,如果我在动画中间反转动画师(解除加载)它就可以了。

我的问题是,如果动画完成演示并且我尝试反转并再次开始动画,我会收到错误消息:

*** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“动画器(UIViewPropertyAnimator [inactive] 可中断)必须至少有一个动画块才能启动!”

每次动画师完成时我都必须重置动画块吗?

0 投票
1 回答
1012 浏览

ios - UIViewControllerAnimatedTransitioning:多次调用interruptibleAnimator?

我刚刚花了几个小时追踪一个恰好位于转换驱动程序对象中的错误,interruptibleAnimator方法被多次调用,其中:

  1. UIViewPropertyAnimator完成闭包包含对[unowned self]完成其转换控制器传递的转换上下文的引用self.context.completeTransition(true)
  2. 实现UIViewControllerAnimatedTransitioning并且是 a的转换控制器UINavigationControllerDelegate通过其animate方法传递上下文

    /li>

除非我在这里遗漏了一些非常基本的东西,否则我不知道为什么转换控制器会多次调用该interruptibleAnimator方法。

我的结构受到 Apple在 WWDC 2016 演讲中介绍的内容的启发;如果您下载,放置一个断点并启动他们的 Photo Transitioning 应用程序,您可以自己看到在他们的情况下,该方法被调用两次以实现相同的转换。

有人可以告诉我我是在追鬼还是这是一种合法的奇怪行为?

0 投票
1 回答
2471 浏览

ios - UIPercentDrivenInteractiveTransition 取消问题

我有的

我正在使用UIViewControllerAnimatedTransitioning protocol附加UIViewPropertyAnimator的平移来关闭视图控制器

平移手势来处理动画:

什么有效

向下滑动以解雇工作完美。轻轻向下滑动并抬起手指以取消也非常有效。

问题

向下和向后滑动超出起点(进度变为负数)并抬起手指应该取消动画并取消过渡。这发生在 iOS 10 中,但它首先会先反转导航控制器的转换,然后再回弹。在 iOS 11 中,取消动画发生,然后我看到导航控制器转换反转。如果您等待,您会看到导航控制器转换确实会尝试在 10 分钟左右的动画中自行纠正它。

问题:

0 投票
0 回答
133 浏览

ios - UIViewPropertyAnimator 完成对应的API

使用 UIViewPropertyAnimator 我可以简单地停止它并调用 finishAnimation(at: .end) 来提前完成正在进行的动画。为了使用传统的基于 UIView 块的动画实现相同的行为,我必须在 iOS 9 上使用什么 API?

0 投票
0 回答
437 浏览

ios - UIView 帧动画不更新子视图布局 - UIViewPropertyAnimator

我正在尝试使用 UIViewPropertyAnimator 制作简单的帧动画。如果我为框架设置动画,效果很好。

当您添加具有自动布局约束的子视图时,问题就出现了。子视图帧在动画开始时计算并立即更改,而不是随着动画的进行而完成。

关于如何在视图框架更改时为子视图设置动画的任何想法?

我的自定义视图只是一个内部有一个 ImageView 的视图,它被限制在其父视图的所有 4 个边上。

0 投票
1 回答
424 浏览

ios - UISpringTimingParameters 的初始速度是如何指定的?

我正在尝试在用户的平移手势释放的视图上执行弹簧动画,并且可能具有非零速度。我基本上是在尝试重新创建他们使用的这个 WWDC 视频UISpringTimingParameters(dampingRatio:initialVelocity:)的动画。但是,文档似乎自相矛盾:

速度

动画的初始速度和方向,指定为单位向量。

[...]

例如,如果总动画距离为 200 点,并且视图的初始速度为每秒 100 点,则指定幅度为 的向量0.5

如果0.5是一个示例值,那么显然它毕竟不需要是一个单位向量。并且首先不可能在单位向量中编码速度。

由于无法依赖文档,我尝试插入几个不同的值,但没有任何结果可以带来令人满意的结果。

我如何使用这个 API?

0 投票
3 回答
3029 浏览

ios - UIViewPropertyAnimator 在 iOS10 和 iOS11 上反转动画的不同行为。`isReversed` 和 `fractionComplete` 属性的错误?

问题
在 iOS10 和 iOS11 上运行相同的代码,我的 UIViewPropertyAnimator 在更改他的.isReversed属性后有不同的行为。

在 iOS10 上一切正常。动画问题发生在 iOS11

条件
任何动画都是如此,不仅是特定的动画,而且可以通过观看动画和代码来验证。它发生在模拟器和真实设备上。

详细
信息一旦用他的动画创建了一个 UIViewPropertyAnimator,在它运行期间我只需调用.pauseAnimation()并将.isReversed属性更改为true。之后我恢复动画调用:

此时在 iOS10 上,动画平滑地改变了他的诗句,在 iOS11 上它立即停止并以位帧延迟反转自身。

如果在代码中我检查了.fractionComplete(在我的 UIViewPropertyAnimator 对象上调用它会以百分比值返回动画的完成,从 0.0 开始到 1.0 结束)的值.continueAnimation(...

- 在 iOS 10 上它会保留片刻,例如 if动画仍在继续,只有在一小部分时间跳转到他的互补之后。

- 在 iOS 11 上,它突然跳到他的补充


上 在文档中没有与此相关的更新,只是 UIViewPropertyAnimator 的几个新属性但没有使用,因为我的目标是 iOS10

可能是一个错误或者我错过了什么!?


小更新:刚刚测试过,在 iOS 11.0.1 和 iOS 11.1 beta1 上的行为相同

正如评论中所链接的,这只发生在非线性曲线上!

0 投票
2 回答
1667 浏览

ios - 自动布局的 UIViewPropertyAnimator 问题

这是我尝试根据 Apple WWDC 但使用自动布局重复的代码:

现在我只是在测试点击手势。并且有两个主要问题:

1) 点击识别器在动画期间无法正常工作。但是在苹果WWDC中,他们改变了框架(不是像我这样的限制)并且点击识别器工作得很好

2)如果我改变反向属性,它会改变约束非常糟糕。我有额外的条带等等

3)我尝试了两种方法来改变动画块之前和内部的约束。没关系,效果一样

任何帮助如何使用自动布局做到这一点?或者至少如何用框架来做,但我的视图控制器是基于自动布局的,所以无论如何我都会对这个底部视图有限制。