Rut*_*ans 0 animation ios swift
我正试图在按下按钮时在按钮上制作动画.案例如下.按钮将有一个苹果的图片.按下时,它将变为image1,image2,image3(如.gif),然后它将是梨的图片.现在我只是看到它从一个苹果变成一个梨,并跳过我正在尝试创建的动画.
这是动画部分的代码:
var image1:UIImage = UIImage(named: buttonAnimationImage1)!;
var image2:UIImage = UIImage(named: buttonAnimationImage2)!;
var image3:UIImage = UIImage(named: buttonAnimationImage3)!;
sender.imageView!.animationImages = [image1, image2, image3];
sender.imageView!.animationDuration = 1.5;
sender.imageView!.startAnimating();
Run Code Online (Sandbox Code Playgroud)
您可以使用动画图像获得此行为.
var image1:UIImage = UIImage(named: buttonAnimationImage1)!;
var image2:UIImage = UIImage(named: buttonAnimationImage2)!;
var image3:UIImage = UIImage(named: buttonAnimationImage3)!;
var images = [image1, image2, image3]
var animatedImage = UIImage.animatedImageWithImages(images, duration: 1.5)
sender.setImage(animatedImage, forState: UIControlState.Normal)
Run Code Online (Sandbox Code Playgroud)
这里唯一的问题是动画会永远持续下去.更重要的是,你不能对动画图像说动画运行的次数.因此,为了停止动画,在所需的时间之后,您将需要再次更改按钮的图像并将其设置为梨形图像.
完整的源代码是:
// setting the images that conform the animation
var image1:UIImage = UIImage(named: buttonAnimationImage1)!;
var image2:UIImage = UIImage(named: buttonAnimationImage2)!;
var image3:UIImage = UIImage(named: buttonAnimationImage3)!;
var images = [image1, image2, image3]
var animatedImage = UIImage.animatedImageWithImages(images, duration: 1.5)
sender.setImage(animatedImage, forState: UIControlState.Normal)
// code for setting the pear image to the button after a delay
let delay = 1.3 * Double(NSEC_PER_SEC)
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(time, dispatch_get_main_queue()) {
sender.setImage(pearImage, forState: .Normal)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1729 次 |
| 最近记录: |