ios - Swift 图像从其帧的底部到顶部出现动画(擦除动画)
问题描述
我只是想对如何处理我手头的情况有一些想法。
我已经创建了一些我想要动画的图像,但是我想要的动画不是默认给出的,所以它给了我一些困难。
我想要的动画是这样的:https ://i.stack.imgur.com/byGMC.gif (不是来自屏幕底部,来自图像自己框架的底部)
当按下按钮时,我希望按钮/图像开始从其框架的底部显示到顶部,就像 powerpoint 中的擦除动画一样 :) 所以自然它会默认为隐藏,当按下按钮时它会动画。
我确实尝试了一些方法,但实际上没有一个方法能完成我想要的工作。
像这个:
extension UIView{
func animShow(){
UIView.animate(withDuration: 2, delay: 5, options: [.transitionFlipFromBottom],
animations: {
self.center.y -= self.bounds.height
self.layoutIfNeeded()
}, completion: nil)
self.isHidden = false
}
func animHide(){
UIView.animate(withDuration: 1, delay: 0, options: [.curveLinear],
animations: {
self.center.y += self.bounds.height
self.layoutIfNeeded()
}, completion: {(_ completed: Bool) -> Void in
self.isHidden = true
})
}
}
所以它在图像中滑动,但这不是我想要的,你可以试试代码,只需添加这个并写image.animShow()
在 viewDidLoad 中,按钮是我想要动画的按钮。
我感谢每一点帮助,我是快速编程的新手谢谢。
解决方案
首先,您必须从情节提要中给出图像的高度约束,并将高度设置为 0 ,然后将图像高度约束放入您的文件中,如下所示
@IBOutlet weak var imageHeight: NSLayoutConstraint!
这是动画代码。
UIView.animate(withDuration: 2, delay: 2, options: [.transitionFlipFromBottom],
animations: {
self.image.frame = CGRect(x: self.image.frame.origin.x, y: self.image.frame.origin.y - 100, width: self.image.frame.size.width, height: 100)
self.imageHeight.constant = 100
self.image.layoutIfNeeded()
}, completion: nil)
推荐阅读
- angular - 激活组件时重置组件变量
- python - 如何使“FileHandler”从日志消息中去除终端转义序列(颜色)?
- powershell - 有没有一种简单的方法可以输出到 xlsx?
- json - Jolt Transformation 将值放入错误的数组元素中
- awk - 需要使用 AWK 以相同的顺序打印列
- c - 局部静态变量如何在方法中工作?
- java - Spring Kafka BATCH ack 模式如何与非批处理侦听器一起使用?
- powershell - 如果没有新数据发布工件,如何参考以前的任务并停止在 azure devops 中构建
- android - 我如何在 Xamarin.android 应用程序中使用人脸身份验证。当用户打开应用程序时,它使用人脸身份验证作为登录名
- algorithm - 在线性时间内对特定序列进行排序