ios - 使用 swift 4.2 动画 UIView

标签 ios iphone swift uiviewanimation

<分区>

有人,请帮我处理这个动画,当我单击 X 按钮时,cardView 在卡片返回后 0.3 秒从屏幕移出,它是原始位置(即父 View 的中心),带有淡入淡出动画。当用户单击 ✅ 按钮时,右侧的情况相同,卡片应向右移动。

UIView.animate(withDuration: 0.5, delay: 0, options: .curveEaseOut, animations: {
            self.cardView.frame.origin.x =  self.cardView.frame.minX - (self.cardView.frame.width + 100)
             self.cardView.transform = CGAffineTransform(rotationAngle:-45)
        }) { (true) in
            self.cardView.center = self.view.center
            self.cardView.alpha = 0;
             self.cardView.transform = CGAffineTransform.identity

            UIView.animate(withDuration: 0.5, animations: {
                self.cardView.alpha = 1.0;
             }, completion: { (true) in

            })
        }

图片示例 -

Sceenshot

最佳答案

我认为您的主要问题是您没有调用 layoutIfNeeded()实际使动画发生的功能。检查文档。试试这个功能它应该做你想做的。

    func doAnimationAction(isTick: Bool) {

    let originToReturn = CGPoint(x: self.view.frame.origin.x, y: self.cardView.frame.origin.y)

    UIView.animate(withDuration: 0.5, animations: {
        self.cardView.alpha = 0.0
        if isTick {
            // Go left
            self.cardView.frame.origin.x =  0 - (self.cardView.frame.width * 1.5)

        } else {
            // Go right (you can change them)
            self.cardView.frame.origin.x =  self.view.frame.width + (self.cardView.frame.width * 1.5)
        }
        self.cardView.transform = CGAffineTransform(rotationAngle:-45)
        self.cardView.layoutIfNeeded()
        self.cardView.superview?.layoutIfNeeded()
    }) { (finished) in
        // Here you can update the cardViewData
        UIView.animate(withDuration: 0.5, animations: {
            self.cardView.transform = CGAffineTransform(rotationAngle:0)
            self.cardView.frame.origin =  originToReturn
            self.cardView.alpha = 1.0
            self.cardView.layoutIfNeeded()
            self.cardView.superview?.layoutIfNeeded()
        }, completion: { (finishedSecondAnimation) in

        })


    }


}

关于ios - 使用 swift 4.2 动画 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54231084/

相关文章:

ios - XCode 总是忘记导入的框架

ios - 如何真正清除 UITextView...

iphone - 我如何在 drawrect 之外做 drawrect 类型的东西?

iphone - 在模拟器上可以,但在iPhone上不行,如何调试?

ios - Swift - UITableViewCell 辅助功能(画外音)

ios - 对象查看 - UICollectionView

ios - 检查 NSDictionary 中的特定值

ios - 混合 Objective-C/Swift 框架的模块映射位置和编译器设置

iphone - 在 Xcode 中组织不同版本的应用程序

swift - 保存到本地数据库图形?