У меня есть 2 UIImageView в контроллере основного представления моего приложения. Они всегда анимируются с помощью анимации UIView. Чего я хочу добиться, так это когда пользователь нажимает кнопку «Домой», приостанавливает анимацию UIView, а когда пользователь возвращается в приложение, возобновляет анимацию.
Поэтому, чтобы сделать паузу, я вызываю метод из моего делегата приложения в мой ViewController, чтобы приостановить вызов applicationWillResignActive.
И для возобновления я также вызываю метод из делегата приложения в мой ViewController для возобновления в методе applicationDidBecomeActive.
Это код, который я использую для приостановки или возобновления анимации:
-(void)pauseLayer:(CALayer*)layer {
CFTimeInterval paused_time = [layer convertTime:CACurrentMediaTime() fromLayer:nil];
layer.speed = 0.0;
layer.timeOffset = paused_time;
}
-(void)resumeLayer:(CALayer*)layer {
CFTimeInterval paused_time = [layer timeOffset];
layer.speed = 1.0f;
layer.timeOffset = 0.0f;
layer.beginTime = 0.0f;
CFTimeInterval time_since_pause = [layer convertTime:CACurrentMediaTime() fromLayer:nil] - paused_time;
layer.beginTime = time_since_pause;
}
- (void)pause:(BOOL)theBool {
if (theBool) {
[self pauseLayer:self.myImageView.layer];
[self pauseLayer:self.myImageViewleft.layer];
} else {
[self resumeLayer:self.myImageView.layer];
[self resumeLayer:self.myImageViewleft.layer];
}
}
Итак, я NSLogged все, и методы вызываются соответственно, однако, когда я иду, чтобы возобновить анимацию, просмотры изображений не возобновляются с того места, где они остановились, и, скорее всего, находятся в том положении, в котором я поместил их в XIB (за пределами экрана).
Итак, когда я повторно захожу в свое приложение, мой XIB перезагружается или что-то в этом роде? Нет абсолютно ничего, что должно было бы изменить положение этих UIImageView, поэтому я действительно не понимаю, почему это происходит.
Изменить: я также пытался создавать свои изображения программно, но безуспешно. Приостановка и возобновление работают успешно, если я делаю это с помощью кнопок в своем приложении во время его работы, похоже, проблема связана с методами делегирования приложения или чем-то еще.
Если кто-нибудь увидит, что не так, пожалуйста, дайте мне знать!
UIImageView
s программно? - person KDaker   schedule 25.08.2012application:didEnterBackground
иwillEnterForeground
вместо resignActive и beActive? - person KDaker   schedule 26.08.2012