UIButton с подвидом UIImageView для отображения анимированных изображений - PullRequest
0 голосов
/ 30 июля 2010

Я пытаюсь создать кнопку, которая отображает анимированные изображения.Я прочитал в этом сообщении, что я предлагаю добавить UIImageView (с массивом animationImages) в качестве подпредставления UIButton.Я попытался сделать это так: (animation1 - это объект 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 для циклического прохождения по этим изображениям, а затем сравнил данные изображения кнопки при нажатии с изображениями в массиве, вызвав другойметод для каждого.Это действительно не кажется очень эффективным!Следовательно, почему я пытаюсь зациклить изображения в подпредставлении.Любые предложения о том, как мне извлечь извлеченные изображения из подпредставления UIImageView UIButton при нажатии кнопки, были бы очень признательны :)

Спасибо!

Майкл

1 Ответ

2 голосов
/ 30 июля 2010

Это чистое предположение, но иногда вам нужно явно установить кадр.(например, при добавлении пользовательской кнопки в UIBarButtonItem) Попробуйте добавить строку

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