2010-04-12 2 views
2

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

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

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

Как увеличить изображение UIButton?

+0

пожалуйста поместить код для того же ... –

ответ

3

я мог бы добиться этого с помощью 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> 
+0

Вы можете применить преобразование непосредственно к button.imageView, установив button.imageView.transform вашего CGAffineTransform. – Kekoa

+0

Я решил использовать UIImageView вместо этого и, таким образом, мог бы использовать обычный анимационный фрейм. Затем сверху положил невидимый UIButton. – Jonny

5

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

[UIView animateWithDuration:0.3f animations:^{ 
    self.myButton.frame = aFrame;  
    [self.myButton layoutIfNeeded]; 
}];