首页 文章

UIView动画 - 奇怪的行为(Swift)

提问于
浏览
0

我有一个UIImageView包含一个动画图片(图片序列)我试图将UIImageView从当前位置移动到屏幕右侧(从屏幕的中间到右侧),以创建角色的运行效果

当我按下我想要触发动画的按钮时,图像突然消失,然后从屏幕左侧的动画到中间动画 . 我不知道为什么UIImageView被移出屏幕(左侧)

这是我的代码

@IBAction func correctButtonPressed(sender: AnyObject) {
        if isTrue {
            winAudio.play()
            playRunAnimation()
            UIView.animateWithDuration(3, animations: { () -> Void in
                var frame = self.animatedImage.frame
                frame.origin.x += (self.animatedImage.superview?.frame.width)!
                self.animatedImage.frame = frame
            })
        }
    }

编辑:

这就是我为UIImageView制作动画的方法

func playIdelAnimation() {
        self.image = UIImage(named: "Idel1.png")
        var imageArray = [UIImage]()
        for i in 1...10 {
            let str = "Idle\(i).png"
            let imageName = UIImage(named: str)!
            imageArray.append(imageName)
        }
        self.animationImages = imageArray
        self.animationDuration = 0.5
        self.startAnimating()
    }

self.image = UIImage(名称:“Idel1.png”)是为UIImageView设置默认图片然后我创建一个UIImage数组,在UIImageView中为它设置动画

使用(self)因为我有一个UIImageView的自定义类

1 回答

  • 0

    首先,您需要从interfacebuilder引用imageview的约束(不要忘记将interfacebuilder中的插座与约束连接起来):

    @IBOutlet weak var leftConstraint: NSLayoutConstraint!
     @IBOutlet weak var rightConstraint: NSLayoutConstraint!
    

    我假设你的图像有一个leftConstraint.constant = 0和rightConstraint.constant = self.view.frame.width

    然后你动画:

    self.leftConstraint.constant = self.view.frame.width
    self.rightConstraint.constant = self.view.frame.width + self.animatedImage.frame.width
    
    UIView.animateWithDuration(3.0) {
        self.view.layoutIfNeeded()
    }
    

    我希望这有帮助 . 祝好运 .

相关问题