小故障iOS动画带有闪光灯



制作iOS应用程序,当我在模拟器上运行代码时,故障是可以忍受的,但是在iPhone上进行测试时,它们更为明显。我正在使用jhchainablemimations来制造它们,并且动画滞后于屏幕上。我会发布图像,但我不确定如何上传有关发生的事情的GIF。

我研究了解决故障,我发现的解决方案是我的背景设置为颜色,我应该使用慢速动画来弄清楚它,但两者都不适合账单。视图中有零背景颜色,而缓慢的动画不起作用(我假设它是因为jhchainablemeanimations不允许slomo动画(

如果此问题是一个框架问题,而不是一个不同的问题,那么我很乐意在良好的动画框架上提出POD建议!

这是代码的图像:

类中的声明

ViewDidload((第1部分和ViewDidload((第2部分

是动画的代码:

代码使一堆圆圈崩溃

使复选标记从按钮后面滑出以确认选择

的代码

最后,当您单击"开始/动作"按钮第1部分和第2部分

时发生的主要动画代码

编辑:这是代码的一些重要位,而没有图像:

崩溃圆圈:

@objc func animateCircleClose() {
    guard let circle1Animator = circle1Animator else {
        return
    }
    guard let circle2Animator = circle2Animator else {
        return
    }
    guard let circle3Animator = circle3Animator else {
        return
    }
    guard let circle4Animator = circle4Animator else {
        return
    }
    guard let circle5Animator = circle5Animator else {
        return
    }
    guard let topanimator = topanimator else {
        return
    }
    guard let botanimator = botanimator else {
        return
    }
    circle1Animator.make(scale: 0).animate(t: 0.8);
    circle2Animator.thenAfter(t: 0.2).make(scale: 0).animate(t: 0.4);
    circle3Animator.thenAfter(t: 0.4).make(scale: 0).animate(t: 0.4);
    circle4Animator.thenAfter(t: 0.6).make(scale: 0).animate(t: 0.4);
    circle5Animator.thenAfter(t: 0.8).make(scale: 0).animate(t: 0.4);
    botanimator.thenAfter(t: 1.2).move(y: -300).easeInBack.animate(t: 0.3);
    topanimator.thenAfter(t: 1.2).move(y: -300).easeInBack.animate(t: 0.3);
}

和Heres按钮动画:

@objc func animateHappyButton() {
    guard let happyBackingAnimator = happyBackingAnimator else {
        return
    }
    if(!selected){
        happyBacking.isHidden = false;
        happyBackingAnimator.move(x: -20).easeOut.animate(t: 0.3);
        selected = true;
        selectedHappy = true;
    }
    else if(selectedHappy){
        happyBackingAnimator.move(x: 20).easeOut.animate(t: 0.3);
        selected = false;
        happyBacking.isHidden = true;
        selectedHappy = false;
    }
    else{
        if(selectedWorried){
            animateWorriedButton();
        }
        if(selectedSad){
            animateSadButton();
        }
        if(selectedExcited){
            animateExcitedButton();
        }
        happyBacking.isHidden = false;
        happyBackingAnimator.move(x: -20).easeOut.animate(t: 0.3);
        selected = true;
        selectedHappy = true;
    }
}

这是为了您的眼睛,我省略了所有的守卫,但您可以在屏幕截图中看到它们

@objc func animateView() {    
    circle1Animator.make(scale: 0.1).animate(t: 0);
    circle2Animator.make(scale: 0.1).animate(t: 0);
    circle3Animator.make(scale: 0.1).animate(t: 0);
    circle4Animator.make(scale: 0.1).animate(t: 0);
    circle5Animator.make(scale: 0.1).animate(t: 0);
    button.isUserInteractionEnabled = false
    let buttonAnimator = ChainableAnimator(view: button)
    topanimator.completion = { [unowned self] in
        self.circle1.isHidden = false;
        self.circle2.isHidden = false;
        self.circle3.isHidden = false;
        self.circle4.isHidden = false;
        self.circle5.isHidden = false;
        self.excitedButton.isHidden = false;
        self.happyButton.isHidden = false;
        self.sadButton.isHidden = false;
        self.worriedButton.isHidden = false;
        circle1Animator.make(scale: 10).easeOut.animate(t: 1);
        circle2Animator.make(scale: 10).easeOut.animate(t: 1);
        circle3Animator.make(scale: 10).easeOut.animate(t: 1);
        circle4Animator.make(scale: 10).easeOut.animate(t: 1);
        circle5Animator.make(scale: 10).easeOut.animate(t: 1);

        happyAnimator.move(x: -245).easeOut.animate(t: 0.3);
        excitedAnimator.thenAfter(t: 0.2).move(x: -245).easeOut.animate(t: 0.3);
        worriedAnimator.thenAfter(t: 0.4).move(x: -245).easeOut.animate(t: 0.3);
        sadAnimator.thenAfter(t: 0.6).move(x: -245).easeOut.animate(t: 0.3);
        self.tagMood.isHidden = false;
    }
    buttonAnimator.move(y: 50).easeInOutExpo.animate(t: 0.5)
    topimg.isHidden = false;
    botimg.isHidden = false;
    botanimator.move(y: -458).easeOutQuart.animate(t: 0.3);
    topanimator.move(y: 228).easeOutQuart.animate(t: 0.3);
    worriedAnimator.move(x: 285).animate(t: 0);
    excitedAnimator.move(x: 285).animate(t: 0);
    happyAnimator.move(x: 285).animate(t: 0);
    sadAnimator.move(x: 285).animate(t: 0);
}

,因此问题是在框架上,当使用jhchainableanimations时,您需要专门使用以下内容:

pod 'ChainableAnimations', :git => 'https://github.com/jhurray/JHChainableAnimations.git', :commit => '6488b3b6ff3c233013056802361d72be7f77d3ed'

repo it自我没有正确更新以解决该问题,但是将上述内容放入podfile将修复

最新更新