как приостановить и возобновить анимацию uiview при нажатии кнопки?

у меня scrollview, у которого есть свойство zoomscale внутри uiview begin animation, он хорошо анимируется в течение некоторого времени, но между этими animations я хочу приостановить animation и возобновить animation, пожалуйста, помогите мне выйти из этого

[UIView beginAnimations:@"anim1" context:NULL];
[UIView setAnimationDelegate:self];
[UIView setAnimationDuration:fanim];
z = [[arrImage1 objectAtIndex:1] floatValue];
scroll.zoomScale = z;
NSLog(@"   %f",scroll.zoomScale);
if (iw != 0 || ih != 0) 
{
    image1.frame = CGRectMake(0, 0, iw,ih);
}
z = [[arrImage2 objectAtIndex:1] floatValue];
scroll1.zoomScale = z;
z = [[arrImage3 objectAtIndex:1] floatValue];
scroll2.zoomScale = z;
[UIView commitAnimations];

person Ahamed Aathil    schedule 08.04.2013    source источник
comment
Вы можете сослаться на следующее: stackoverflow .com / questions / 3211065 / и заголовок stackoverflow.com/questions/9104487/   -  person V-Xtreme    schedule 08.04.2013


Ответы (1)


Это возможно с помощью nstimer. Попробуйте использовать nstimer для запуска и приостановки анимации, вот набор кода, который вы можете использовать. Реализуйте свою анимацию в методе и используйте nstimer, чтобы запустить ее и приостановить:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [self startTimer];
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self stopTimer];
}

- (void)startTimer {
    NSTimer *timer = [[NSTimer alloc] initWithFireDate:[NSDate dateWithTimeIntervalSinceNow:3.0] interval:3.0 target:self selector:@selector(this is where your animation method name goest) userInfo:nil repeats:YES];
    [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
    self.animationmethodename = timer;
    [timer release];
}

- (void)stopTimer {
    [self.animationmethodname invalidate];
    self.animationmethodtimer = nil;
}

Затем замените имя метода анимации именем метода, который вы используете для создания анимации.

person Adrian P    schedule 08.04.2013
comment
Подскажите, пожалуйста, что такое анимационный метод таймера? - person Ahamed Aathil; 08.04.2013
comment
Вы имеете в виду метод startTimer? - person Ahamed Aathil; 08.04.2013
comment
Имя метода анимации - это метод, который вы используете для реализации кода, который вы показываете в своем вопросе. Я предполагаю, что вы, вероятно, поместили этот набор кода в viewdidload, если это так, вы можете удалить его и создать метод - (void), и любое имя, которое вы укажете после этого, будет тем, на что вы замените имя метода анимации. - person Adrian P; 08.04.2013