一个UIButton中的动态图片

18

最佳的方式是如何为按钮动画化图片?

假设我想要循环播放6张图片,并且用户仍然能够点击该按钮,应该怎么做?

是否可以在界面生成器中对这些动画图像进行动画处理,并在其上方放置一个不可见的按钮?

是否有一种方法可以在定义 UIButton 时对它们进行动画处理?

还是最好动画化图片并查找用户的触摸点来作出响应?

1个回答

26

您可以使用UIButton的imageView属性来实现这一点。这将允许按钮像往常一样进行操作,并在其上动画显示您的图像。以下是一个示例:

NSMutableArray *imageArray = [NSMutableArray new];

for (int i = 1; i < 4; i ++) {
    [imageArray addObject:[UIImage imageNamed:[NSString stringWithFormat:@"%d.png",i]]];
}

[myButton setImage:[UIImage imageNamed:@"1.png"] forState:UIControlStateNormal];

[myButton.imageView setAnimationImages:[imageArray copy]];
[myButton.imageView setAnimationDuration:0.5];

[myButton.imageView startAnimating];

当 myButton.imageView.hidden = YES 不起作用时,这是为什么? - bobmoff
@bobmoff 可能是因为当你将 imageView 设为隐藏时,它仍然存在。所有的改变只是图像视图的 alpha 值。 - Mick MacCallum
@bobmoff 抱歉,我看错了。你是说当有动画时按钮图像视图没有保持隐藏吗?如果是这样,那么似乎动画可能会在内部自行显示图像视图。 - Mick MacCallum
忘掉动画吧。仅仅设置imageView.hidden = YES或imageView.alpha = 0对我来说不起作用。这应该是可以工作的吗?图像仍然显示。唯一的方法是使用setImage:nil forState:方法来移除图像,但我想能够将alpha从1渐变到0。我只是想淡化imageView。 - bobmoff
1
好的,那我一定是做错了其他事情。谢谢你的帮助。 :) - bobmoff
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接