Анимированный ход и масштаб изображения UIButton - PullRequest
2 голосов
/ 12 апреля 2010

Я хочу, чтобы оно было анимированным, поэтому я использую [UIView beginAnimations]

Я пытался анимировать, используя button.imageView.frame (с изображением, установленным как imageView), но он только анимирует позицию, изображение вообще не уменьшается.

с использованием hateButton.frame (когда изображение установлено в качестве backgroundImage), backgroundImage уменьшается, но не анимируется.

Как анимировать масштабирование изображения UIButton?

Ответы [ 2 ]

5 голосов
/ 22 октября 2012

Вы можете позвонить layoutIfNeeded между [UIView beginAnimations] и [UIView commintAnimations] или с [UIView animateWithDuration].

[UIView animateWithDuration:0.3f animations:^{
    self.myButton.frame = aFrame;    
    [self.myButton layoutIfNeeded];
 }];
3 голосов
/ 12 апреля 2010

Я мог бы добиться этого с помощью Quartz 2D:

// move anchor point without moving frame
CGRect oldFrame = hateButton.frame;
hateButton.layer.anchorPoint = CGPointMake(0, 1); // bottom left
hateButton.frame = oldFrame;

[UIView beginAnimations:nil context:NULL];  
CGAffineTransform newTransform;
newTransform = CGAffineTransformMakeScale(0.8, 0.8);
hateButton.transform = CGAffineTransformTranslate(newTransform, 0, -160);
[UIView commitAnimations];

Убедитесь, что вы импортируете Quartz2D тоже:

#import <QuartzCore/QuartzCore.h>
...