带有 UIImageView 子视图的 UIButton 以显示动画图像

Posted

技术标签:

【中文标题】带有 UIImageView 子视图的 UIButton 以显示动画图像【英文标题】:UIButton with UIImageView subview to show animated images 【发布时间】:2010-07-30 13:32:02 【问题描述】:

我正在尝试创建一个显示动画图像的按钮。我在this 中读到了我添加一个 UIImageView(带有一个动画图像数组)作为 UIButton 的子视图的建议。我试着这样做: (animation1是一个在header中声明的UIImageView对象)

- (void)viewDidLoad 
 UIImage *image1 = [UIImage imageNamed:@"Good1.png"];
 UIImage *image2 = [UIImage imageNamed:@"Good2.png"];
 UIImage *image3 = [UIImage imageNamed:@"Bad1.png"];
 NSArray *images = [[NSArray alloc] initWithObjects:image1, image2, image3, nil];
 animation1.animationImages = images;
 [images release];
 [self.button1 addSubview:animation1];
 [self.button1 bringSubviewToFront:animation1];
 [button1 setNeedsDisplay];
 animation1.animationDuration = 1;
 animation1.animationRepeatCount = 3;
 [animation1 startAnimating];
    [super viewDidLoad];

但按钮内没有出现任何内容。有什么想法我可能会出错吗?

另外,我希望它能够根据用户按下按钮时显示的图像来调用不同的方法。我之前实现了这一点,但创建了一个图像数组,使用 NSTimer 设置 UIButton 的背景图像以循环浏览这些图像,然后将按下时按钮的图像数据与数组中的图像进行比较,调用不同的每个方法。这看起来真的不是很有效!因此,为什么我要在子视图中循环图像。任何关于我如何在按下按钮时从 UIButton 的 UIImageView 子视图中提取图像数据的建议将不胜感激:)

谢谢!

迈克尔

【问题讨论】:

【参考方案1】:

这纯粹是推测,但有时您需要明确设置框架。 (例如,将自定义按钮添加到 UIBarButtonItem 时)尝试添加一行

animation1.frame = CGRectMake(0,0,50,50);

【讨论】:

抱歉回复慢 - 我会试一试 - 谢谢!以及关于如何提取 UIImageView 在按下按钮时显示的 UIImage 的任何想法?干杯:)

以上是关于带有 UIImageView 子视图的 UIButton 以显示动画图像的主要内容,如果未能解决你的问题,请参考以下文章

当单元格具有 UIImageView 子视图时,UITableView 经历断断续续的滚动

移动带有子视图的 UIView

带有子视图的 UIScrollView,包括 ImageView、Label 和 Table View

以编程方式使用自动布局实现带有子视图的 uiview 子类

UIImageView 大小变化

在 UITableView 中有一个带有圆角的 UIImageView 的确定方法?