加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用swift移动和动画UIImageView

发布时间:2020-12-14 04:51:34 所属栏目:百科 来源:网络整理
导读:我这里有一个相当简单的问题.基本上我正在尝试将一个对象(一个UI ImageView)从A点(它在故事板中设置)移动到我以编程方式定义的B点. 我的第一次传递导致了这段代码 UIView.animateWithDuration(0.75,delay: 0.5,options: UIViewAnimationOptions.CurveLinear,
我这里有一个相当简单的问题.基本上我正在尝试将一个对象(一个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代码将工作

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")
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读