Я работаю над UIButton анимации, где:IOS перевод и масштаб анимации
UIButton
расположен в центре нижней части экрана и масштабируется до небольшого размера
_menuBtn.transform = CGAffineTransformMakeScale(0.1f, 0.1f);
Когда приложение начинает его должен перемещаться в нижнюю левую часть экрана, поскольку он масштабируется или растет до первоначального размера.
- (void)viewDidLoad
{
[super viewDidLoad];
_menuBtn.frame = CGRectMake(160, 513, 30, 30);
_menuBtn.superview.frame = CGRectMake(160, 513, 30, 30);
_menuBtn.transform = CGAffineTransformMakeScale(0.1f, 0.1f);
NSLog(@"_menuBtn: %@ ; _menuBtn.superview: %@", _menuBtn, _menuBtn.superview);
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDelegate:self];
[UIView setAnimationDuration:5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
CGAffineTransform scaleTrans = CGAffineTransformMakeScale(1.0f, 1.0f);
CGAffineTransform lefttorightTrans = CGAffineTransformMakeTranslation(-200.0f,0.0f);
_menuBtn.transform = CGAffineTransformConcat(scaleTrans, lefttorightTrans);
[UIView commitAnimations];
}
проблема
Когда анимация начинается кнопка начинает движение из нижней правой части экрана, а не в нижней части центра, где она и должна быть. Любая помощь ?
Вход Результат
NSLog(@"%@", _myBtn);
2013-08-14 09:22:38.913 GJCoolNavi[339:c07] <UIButton: 0x813ea30; frame = (0 0; 0 0); opaque = NO; autoresize = TM+BM; layer = <CALayer: 0x813eaf0>>
Thats, прежде чем делать анимацию ... и результат после анимации:
2013-08-14 09:30:25.719 GJCoolNavi[612:c07] <UIButton: 0x71206d0; frame = (160 294; 0 0); opaque = NO; autoresize = TM+BM; animations = { transform=<CABasicAnimation: 0x7536a80>; position=<CABasicAnimation: 0x7537dd0>; }; layer = <CALayer: 0x7120790>>
Моя первая мысль может быть неактуальной для темы, но почему вы не использовали блочную анимацию, как рекомендует Apple на iOS4 или выше? – holex
Первое, что я подумал. Это в моем ответе, видимо, это все еще не работает. Все еще пытаюсь понять, что происходит и почему. – Fogmeister