- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在阅读 12th number of Objc.io并在尝试第一段代码时遇到问题。在第一部分“基本动画”中,最后一段代码使用 byValue 来使用初始属性值和添加 byValue 来插入属性。
所以我在我的项目中尝试了代码,发现它无法正常工作并且有一个非常奇怪的行为。
这是一个非常简短的 gif 说明问题:
这是我唯一使用的代码:
class ViewController: UIViewController {
var rocket1: UIView!
var rocket2: UIView!
override func viewDidLoad() {
super.viewDidLoad()
rocket1 = UIView(frame: CGRect(x: 20, y: 100, width: 50, height: 20))
rocket1.backgroundColor = UIColor.redColor()
rocket2 = UIView(frame: CGRect(x: 20, y: 150, width: 50, height: 20))
rocket2.backgroundColor = UIColor.blueColor()
self.view.addSubview(rocket1)
self.view.addSubview(rocket2)
}
@IBAction func button() {
let animation = CABasicAnimation(keyPath: "position.x")
animation.byValue = 300
animation.duration = 1
rocket1.layer.addAnimation(animation, forKey: "basic")
rocket1.layer.position.x += 300
animation.beginTime = CACurrentMediaTime() + 0.5
rocket2.layer.addAnimation(animation, forKey: "basic")
rocket2.layer.position.x += 300
}
}
如果你想尝试这个项目,这里是完整的项目(使用 iPhone 6 模拟器或形状将被隐藏,因为 5S 太“短”):https://dl.dropboxusercontent.com/u/378166/VCoreAnimation.zip
最佳答案
你应该像这样为这个动画创建一个完成 block :
@IBAction func button() {
let animation = CABasicAnimation(keyPath: "position.x")
animation.byValue = 300
animation.duration = 1
CATransaction.begin()
CATransaction.setCompletionBlock({
rocket1.layer.position.x += 300
})
rocket1.layer.addAnimation(animation, forKey: "basic")
CATransaction.commit()
animation.beginTime = CACurrentMediaTime() + 0.5
CATransaction.begin()
CATransaction.setCompletionBlock({
rocket2.layer.position.x += 300
})
rocket2.layer.addAnimation(animation, forKey: "basic")
CATransaction.commit()
}
在这种情况下,我们需要 2 个 CATransaction block ,因为我们有 2 个动画以彼此不同的时间运行。
关于ios - CABasicAnimation byValue 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30383747/
假设我有以下 C 结构体定义: struct StructB { int a; int b; }; struct StructA { struct StructB *ref;
我正在阅读 12th number of Objc.io并在尝试第一段代码时遇到问题。在第一部分“基本动画”中,最后一段代码使用 byValue 来使用初始属性值和添加 byValue 来插入属性。
我正在学习一种不同的方法来创建自定义指标。下面是使用 CABasicAnimation 实现任务的教程中的部分代码。 -(void)spin { CABasicAnimation *spinA
一些 PowerShell commandlet 接受管道输入 ByProperyName,一些接受 ByValue,另一些接受两者兼而有之。这是什么意思?它如何影响我们的 PowerShell 脚本
我想停止一个名为“ALG”的服务,所以我使用:"alg" | stop-service有用。 Get-help stop-service -parameter name说:管道输入:true(ByPr
这个问题在这里已经有了答案: What's the difference between passing by reference vs. passing by value? (18 个答案) 关闭
我似乎无法在任何地方找到解释...... 假设我有一个向量 y 初始化为全零: from numpy import * y = zeros(5) 它也可以是一个普通的 python 数组,我认为这并不
我是一名优秀的程序员,十分优秀!