UIButton 的动画图像不快速显示
Posted
技术标签:
【中文标题】UIButton 的动画图像不快速显示【英文标题】:UIButton's animating images doesn't show swift 【发布时间】:2017-03-20 23:30:24 【问题描述】:这让我发疯了。我花了两天时间关注所有我能找到的关于如何为UIImageview
制作动画的文档。但是当我运行应用程序和代码(在viewDidLoad
中调用)时,UIButton
上没有显示动画图像。
最后一个 if 语句甚至打印出“是的,它正在运行”。但是模拟器或设备上什么都没有显示。
更新:已添加func setImage(_ image: UIImage?, for state: UIControlState):
功能。现在第一个图像加载并显示,但仍然没有动画......
还尝试为按钮提供单独的Outlet
- 结果相同...
我现在真的卡住了。
var Cowboy:[UIImage] = [UIImage(named: "Cowboy__000")!, UIImage(named: "Cowboy__001")!,UIImage(named: "Cowboy__002")!,UIImage(named: "Cowboy__003")!,UIImage(named: "Cowboy__004")!,UIImage(named: "Cowboy__005")!,UIImage(named: "Cowboy__006")!,UIImage(named: "Cowboy__007")!,UIImage(named: "Cowboy__008")!, UIImage(named: "Cowboy__009")!]
var currentAnimationImages = [UIImage]
for i in 0..<Cowboy.count
currentAnimationImages.append(Cowboy[i])
//buttons stored in outlet collection
print("currentAnimationImages", currentAnimationImages) //the array contains the images!
buttons[0].setImage(currentAnimationImages.first, for: .normal) //is shown
//nothing happens...
buttons[0].imageView!.animationImages = currentAnimationImages
buttons[0].imageView!.animationDuration = 0.2
buttons[0].imageView!.animationRepeatCount = 10
buttons[0].imageView!.startAnimating()
if buttons[0].imageView!.isAnimating == true
print("yes, running") //this is printed out!
else
print("no, not running")
所有的帮助都是需要和感激的。
【问题讨论】:
可能所有图片都一样buttons
是 IBOutletCollection 吗?它是在你的故事板或 xib 文件中连接的吗?
@Vinodh 它们是一组共同创建动画的图像。
@MichaelDautermann 是的,他们通过故事板连接起来。
@MichaelDautermann 但是如果我将它们单独连接起来,也会发生同样的事情,单独的Outlets
【参考方案1】:
您必须调用 func setImage(_ image: UIImage?, for state: UIControlState):
获取要显示的图像,然后才能对其进行动画处理。
例如:
buttons[0]. setImage(currentAnimationImages[0], forState: .Normal)
// Now you can start animating
buttons[0].imageView!.animationImages = currentAnimationImages
buttons[0].imageView!.animationDuration = 0.2
buttons[0].imageView!.animationRepeatCount = 10
buttons[0].imageView!.startAnimating()
【讨论】:
尝试将animationDuration
增加到 1.0
尝试在每个图像名称的末尾添加.png
或您的文件扩展名。例如UIImage(named: "Cowboy__000.png")!
以上是关于UIButton 的动画图像不快速显示的主要内容,如果未能解决你的问题,请参考以下文章
带有 UIImageView 子视图的 UIButton 以显示动画图像