我这里有一个相当简单的问题.基本上我正在尝试将一个对象(一个UI
ImageView)从A点(它在故事板中设置)移动到我以编程方式定义的B点.
我的第一次传递导致了这段代码
UIView.animateWithDuration(0.75,delay: 0.5,options: UIViewAnimationoptions.CurveLinear,animations: { self.signInButton.alpha = 1 self.signInButton.center.y = 10 },completion: nil)
但是,此代码的作用基本上是将按钮偏离中心,然后再返回其原始位置.
然后我调查了QuartzCore来帮助我,但一切都在Objective-C中.我有这个方法:
func moveImage(view: UIImageView){ var toPoint: CGPoint = CGPointMake(0.0,-10.0) var fromPoint : CGPoint = CGPointZero var movement = CABasicAnimation(keyPath: "movement") movement.additive = true movement.fromValue = fromPoint movement.tovalue = toPoint movement.duration = 0.3 view.layer.addAnimation(movement,forKey: "move") }
但是这里的问题是movement.fromValue不能接受CGPoint.我知道在目标C中有一个函数将CGPoint转换为NSValue,但是这个函数似乎已经被Swift弃用了,我找不到另一种方法.
因此,我的问题是,如何将CGPoint转换为NSValue以使我的moveImage()函数工作,或者有更好的方法将对象从A点移动到B点?
谢谢!
我正在看这个问题Animate UIImage in UIImageView Up & Down (Like it’s hovering) Loop
解决方法
使用NSValue(CGPoint:cgpiont)代替在swift中弃用的NSValue.valueWithCGPoint(< #point:CGPoint#>). NSValue(CGPoint:cgpiont)是给定的构造函数,可用于将CGPoint转换为NSValue
在swift.Following代码将工作
在swift.Following代码将工作
func moveImage(view: UIImageView){ var toPoint: CGPoint = CGPointMake(0.0,-10.0) var fromPoint : CGPoint = CGPointZero var movement = CABasicAnimation(keyPath: "movement") movement.additive = true movement.fromValue = NSValue(CGPoint: fromPoint) movement.tovalue = NSValue(CGPoint: toPoint) movement.duration = 0.3 view.layer.addAnimation(movement,forKey: "move") }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。